├── .editorconfig ├── .github ├── FUNDING.yml └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── data ├── com.github.alcadica.develop.appdata.xml.in ├── com.github.alcadica.develop.desktop.in ├── com.github.alcadica.develop.gschema.xml ├── icons │ ├── 16 │ │ └── com.github.alcadica.develop.svg │ ├── 24 │ │ └── com.github.alcadica.develop.svg │ ├── 32 │ │ └── com.github.alcadica.develop.svg │ ├── 48 │ │ └── com.github.alcadica.develop.svg │ ├── 64 │ │ └── com.github.alcadica.develop.svg │ ├── 128 │ │ └── com.github.alcadica.develop.svg │ └── com.github.alcadica.develop.svg ├── meson.build ├── screenshots │ ├── screenshot-000.png │ ├── screenshot-001.jpeg │ ├── screenshot-002.png │ └── screenshot-003.png └── templates │ ├── app │ ├── .editorconfig │ ├── .gitignore │ ├── .travis.yml │ ├── README.md │ ├── data │ │ ├── appdata.xml │ │ ├── desktop │ │ ├── icons │ │ │ ├── 16 │ │ │ │ └── name.svg │ │ │ ├── 24 │ │ │ │ └── name.svg │ │ │ ├── 32 │ │ │ │ └── name.svg │ │ │ ├── 48 │ │ │ │ └── name.svg │ │ │ ├── 64 │ │ │ │ └── name.svg │ │ │ ├── 128 │ │ │ │ └── name.svg │ │ │ └── name.svg │ │ └── meson.build │ ├── meson.build │ ├── meson │ │ └── post_install.py │ ├── po │ │ ├── LINGUAS │ │ ├── POTFILES │ │ ├── extra │ │ │ ├── LINGUAS │ │ │ ├── POTFILES │ │ │ └── meson.build │ │ └── meson.build │ └── src │ │ ├── Application.vala │ │ └── meson.build │ ├── switchboard-widget │ ├── .gitignore │ ├── .travis.yml │ ├── CODE_OF_CONDUCT.md │ ├── COPYING │ ├── README.md │ ├── data │ │ └── icons │ │ │ └── 128 │ │ │ └── icon.svg │ ├── meson.build │ ├── po │ │ ├── LINGUAS │ │ └── meson.build │ └── src │ │ ├── Backend │ │ └── Settings.vala │ │ ├── Plug.vala │ │ ├── Widgets │ │ ├── GeneralSection.vala │ │ └── SettingLabel.vala │ │ └── meson.build │ └── wingpanel-widget │ ├── .editorconfig │ ├── .gitignore │ ├── .travis.yml │ ├── COPYING │ ├── README.md │ ├── meson.build │ ├── po │ ├── LINGUAS │ └── meson.build │ └── src │ └── Indicator.vala ├── debian ├── changelog ├── compat ├── control ├── copyright ├── rules └── source │ └── format ├── meson.build ├── meson └── post_install.py ├── po ├── LINGUAS ├── POTFILES ├── com.github.alcadica.develop.pot ├── es.po ├── extra │ ├── LINGUAS │ ├── POTFILES │ ├── es.po │ ├── extra.pot │ ├── fr.po │ ├── meson.build │ ├── nl.po │ ├── pt.po │ └── ru.po ├── fr.po ├── meson.build ├── nl.po ├── pt.po └── ru.po └── src ├── Actions ├── ProjectEditing │ └── Actions.vala └── Window │ └── Actions.vala ├── Application.vala ├── CommonRegEx.vala ├── Entities ├── Generic │ └── KeyValuePair.vala └── Template │ ├── TemplateFile.vala │ ├── TemplateFileType.vala │ └── TemplateToken.vala ├── Services ├── ActionManager.vala ├── FileSystem.vala ├── RDNN.vala ├── TemplateService.vala ├── Templates │ ├── App.vala │ ├── SwitchboardWidget.vala │ └── WingpanelWidget.vala └── UserSettings.vala ├── Views ├── MainView.vala ├── Partials │ ├── Forms │ │ ├── FormBase.vala │ │ ├── FormNewApp.vala │ │ ├── FormNewSwitchboardWidget.vala │ │ ├── FormNewWingpanelWidget.vala │ │ └── FormUserData.vala │ ├── Settings │ │ ├── SettingsBase.vala │ │ ├── UserDataSettings.vala │ │ └── UserDataSettingsFirstRun.vala │ └── Window │ │ └── HeaderBar.vala ├── ProjectEditingView.vala ├── SettingsView.vala └── WelcomeView.vala ├── Widgets ├── ActionBar.vala ├── ComboBoxWithLabel.vala ├── Entry.vala ├── EntryWithLabel.vala ├── SettingItem.vala └── SwitchWithLabel.vala └── meson.build /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig 2 | root = true 3 | 4 | # elementary defaults 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | indent_size = tab 9 | indent_style = space 10 | insert_final_newline = true 11 | max_line_length = 80 12 | tab_width = 4 13 | 14 | [{*.xml,*.xml.in,*.yml}] 15 | tab_width = 2 16 | 17 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: octod 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: OctoD 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Additional context** 27 | Add any other context about the problem here. 28 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: OctoD 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .build 2 | 3 | build 4 | 5 | TEST -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | language: node_js 4 | 5 | node_js: 6 | - 10.17.0 7 | 8 | sudo: required 9 | 10 | services: 11 | - docker 12 | 13 | addons: 14 | apt: 15 | sources: 16 | - ubuntu-toolchain-r-test 17 | packages: 18 | - libstdc++-5-dev 19 | 20 | install: 21 | - npm install -g @elementaryos/houston 22 | 23 | script: 24 | - houston ci 25 | --type system-app 26 | --name-domain com.github.alcadica.develop 27 | --name-human Develop 28 | 29 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Develop 2 | ======= 3 | 4 | [![Build Status](https://travis-ci.org/alcadica/develop.svg?branch=master)](https://travis-ci.org/alcadica/develop) 5 | 6 | A simple tool to help elementary OS developers to develop their own apps and widgets. 7 | 8 | ![](./data/screenshots/screenshot-002.png) 9 | 10 | ## Get it from the elementary OS AppCenter! 11 | 12 | [![Get it on AppCenter](https://appcenter.elementary.io/badge.svg)](https://appcenter.elementary.io/com.github.alcadica.develop) 13 | 14 | Develop is available on the elementary OS AppCenter. 15 | 16 | # Install it from source 17 | 18 | You can of course download and install Develop from source. 19 | 20 | ## Dependencies 21 | 22 | Ensure you have these dependencies installed 23 | 24 | * granite 25 | * gtk+-3.0 26 | * switchboard-2.0 27 | 28 | ## Install, build and run 29 | 30 | ```bash 31 | # install elementary-sdk, meson and ninja 32 | sudo apt install elementary-sdk meson ninja 33 | # clone repository 34 | git clone https://github.com/alcadica/develop com.github.alcadica.develop 35 | # cd to dir 36 | cd com.github.alcadica.develop 37 | # run meson 38 | meson build --prefix=/usr 39 | # cd to build, build and test 40 | cd build 41 | sudo ninja install && com.github.alcadica.develop 42 | ``` 43 | 44 | ## Generating pot file 45 | 46 | ```bash 47 | # after setting up meson build 48 | cd build 49 | 50 | # generates pot file 51 | sudo ninja com.github.alcadica.develop-pot 52 | 53 | # to regenerate and propagate changes to every po file 54 | sudo ninja com.github.alcadica.develop-update-po 55 | ``` 56 | 57 | ## Contributors 58 | 59 | * [OctoD](https://github.com/octod) (author 🐧) 60 | * [NathanBnm](https://github.com/NathanBnm) (contributor/French translator) 61 | * [iuninefrendor](https://github.com/iuninefrendor) (contributor/Spanish translator/build system) 62 | * [aimproxy](https://github.com/aimproxy) (contributor/Portuguese translator) 63 | * [meisenzahl](https://github.com/meisenzahl) (for fixing the build system and preventing lots of headaches) 64 | * [maze-n](https://github.com/maze-n) (for UI tweaks) 65 | * [spidermonkdust](https://github.com/spidermonkdust) (for making templates passing Vala linter) 66 | * [ryonakano](https://github.com/ryonakano) (contributor) 67 | * [vistaus](https://github.com/vistaus) (contributor/Dutch translator) 68 | * [camellan](https://github.com/camellan) (Russian translator) 69 | -------------------------------------------------------------------------------- /data/com.github.alcadica.develop.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Name=Develop 4 | Comment=Create apps and widgets 5 | GenericName=Develop App 6 | Exec=com.github.alcadica.develop %U 7 | Icon=com.github.alcadica.develop 8 | Terminal=false 9 | Categories=Utility;Development; 10 | Keywords=Develop; 11 | X-GNOME-Gettext-Domain=com.github.alcadica.develop 12 | X-GNOME-UsesNotifications=true -------------------------------------------------------------------------------- /data/com.github.alcadica.develop.gschema.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | Is your first time. 6 | Is your first time. 7 | 8 | 9 | '' 10 | Your email address. 11 | Your email address. 12 | 13 | 14 | '' 15 | Your github page url. 16 | Your github page url. 17 | 18 | 19 | '' 20 | Your name. 21 | Your name. 22 | 23 | 24 | '' 25 | Your website. 26 | Your website. 27 | 28 | 29 | -------------------------------------------------------------------------------- /data/meson.build: -------------------------------------------------------------------------------- 1 | icon_sizes = ['16', '24', '32', '48', '64', '128'] 2 | 3 | foreach i : icon_sizes 4 | install_data( 5 | join_paths('icons', i, meson.project_name() + '.svg'), 6 | install_dir: join_paths(get_option('datadir'), 'icons', 'hicolor', i + 'x' + i, 'apps') 7 | ) 8 | install_data( 9 | join_paths('icons', i, meson.project_name() + '.svg'), 10 | install_dir: join_paths(get_option('datadir'), 'icons', 'hicolor', i + 'x' + i + '@2', 'apps') 11 | ) 12 | endforeach 13 | 14 | i18n.merge_file( 15 | input: meson.project_name() + '.desktop.in', 16 | output: meson.project_name() + '.desktop', 17 | po_dir: join_paths(meson.source_root(), 'po', 'extra'), 18 | type: 'desktop', 19 | install: true, 20 | install_dir: join_paths(get_option('datadir'), 'applications') 21 | ) 22 | 23 | i18n.merge_file( 24 | input: meson.project_name() + '.appdata.xml.in', 25 | output: meson.project_name() + '.appdata.xml', 26 | po_dir: join_paths(meson.source_root(), 'po', 'extra'), 27 | install: true, 28 | install_dir: join_paths(get_option('datadir'), 'metainfo') 29 | ) 30 | 31 | install_data( 32 | meson.project_name() + '.gschema.xml', 33 | install_dir: join_paths(get_option('datadir'), 'glib-2.0', 'schemas') 34 | ) 35 | 36 | install_subdir( 37 | 'templates', 38 | install_dir: join_paths(get_option('datadir'), meson.project_name()) 39 | ) 40 | -------------------------------------------------------------------------------- /data/screenshots/screenshot-000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/screenshots/screenshot-000.png -------------------------------------------------------------------------------- /data/screenshots/screenshot-001.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/screenshots/screenshot-001.jpeg -------------------------------------------------------------------------------- /data/screenshots/screenshot-002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/screenshots/screenshot-002.png -------------------------------------------------------------------------------- /data/screenshots/screenshot-003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/screenshots/screenshot-003.png -------------------------------------------------------------------------------- /data/templates/app/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig 2 | root = true 3 | 4 | # elementary defaults 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | indent_size = tab 9 | indent_style = space 10 | insert_final_newline = true 11 | max_line_length = 80 12 | tab_width = 4 13 | 14 | [{*.xml,*.xml.in,*.yml}] 15 | tab_width = 2 16 | -------------------------------------------------------------------------------- /data/templates/app/.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | build/* 3 | -------------------------------------------------------------------------------- /data/templates/app/.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | language: node_js 4 | 5 | node_js: 6 | - 10.17.0 7 | 8 | sudo: required 9 | 10 | services: 11 | - docker 12 | 13 | addons: 14 | apt: 15 | sources: 16 | - ubuntu-toolchain-r-test 17 | packages: 18 | - libstdc++-5-dev 19 | 20 | install: 21 | - npm i -g @elementaryos/houston 22 | 23 | script: 24 | - houston ci 25 | -------------------------------------------------------------------------------- /data/templates/app/README.md: -------------------------------------------------------------------------------- 1 | # {{projectname}} 2 | 3 | Adds your awesome app description here! 4 | 5 | (maybe adds a screenshot, people loves screenshots!) 6 | 7 | ## Get it from the elementary OS AppCenter! 8 | 9 | [![Get it on AppCenter](https://appcenter.elementary.io/badge.svg)](https://appcenter.elementary.io/{{projectname}}) 10 | 11 | This app is available on the elementary OS AppCenter. 12 | 13 | # Install it from source 14 | 15 | You can of course download and install this app from source. 16 | 17 | ## Dependencies 18 | 19 | Ensure you have these dependencies installed 20 | 21 | * granite 22 | * gtk+-3.0 23 | * switchboard-2.0 24 | 25 | ## Install, build and run 26 | 27 | ```bash 28 | # install elementary-sdk, meson and ninja 29 | sudo apt install elementary-sdk meson ninja 30 | # clone repository 31 | git clone {{repository_url}} {{projectname}} 32 | # cd to dir 33 | cd {{projectname}} 34 | # run meson 35 | meson build --prefix=/usr 36 | # cd to build, build and test 37 | cd build 38 | sudo ninja install && {{projectname}} 39 | ``` 40 | 41 | ## Generating pot file 42 | 43 | ```bash 44 | # after setting up meson build 45 | cd build 46 | 47 | # generates pot file 48 | ninja {{projectname}}-pot 49 | 50 | # to regenerate and propagate changes to every po file 51 | ninja {{projectname}}-update-po 52 | ``` 53 | -------------------------------------------------------------------------------- /data/templates/app/data/appdata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{execname}} 5 | CC0-1.0 6 | GPL-3.0+ 7 | Your App's Name 8 | A Catchy Tagline 9 | 10 |

A quick summary of your app's main selling points and features. Just a couple sentences per paragraph is best.

11 |
12 | 13 | {{execname}} 14 | 15 | {{name}} 16 | {{site}} 17 | {{issue_tracker_url}} 18 | {{issue_tracker_url}} 19 | 20 | 21 | 22 | 23 | 24 | none 25 | none 26 | none 27 | none 28 | none 29 | none 30 | none 31 | none 32 | none 33 | none 34 | none 35 | none 36 | none 37 | none 38 | none 39 | none 40 | none 41 | none 42 | none 43 | none 44 | none 45 | none 46 | none 47 | none 48 | none 49 | none 50 | none 51 | 52 | 53 | 54 | 55 |
56 | -------------------------------------------------------------------------------- /data/templates/app/data/desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Name=Name 4 | Comment=Comment 5 | GenericName=GenericName 6 | Exec={{execname}} %U 7 | Icon={{execname}} 8 | Terminal=false 9 | Categories=Utility;GTK;Development; 10 | Keywords=Develop 11 | -------------------------------------------------------------------------------- /data/templates/app/data/icons/128/name.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/templates/app/data/icons/128/name.svg -------------------------------------------------------------------------------- /data/templates/app/data/icons/16/name.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/templates/app/data/icons/16/name.svg -------------------------------------------------------------------------------- /data/templates/app/data/icons/24/name.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/templates/app/data/icons/24/name.svg -------------------------------------------------------------------------------- /data/templates/app/data/icons/32/name.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/templates/app/data/icons/32/name.svg -------------------------------------------------------------------------------- /data/templates/app/data/icons/48/name.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/templates/app/data/icons/48/name.svg -------------------------------------------------------------------------------- /data/templates/app/data/icons/64/name.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/templates/app/data/icons/64/name.svg -------------------------------------------------------------------------------- /data/templates/app/data/icons/name.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/templates/app/data/icons/name.svg -------------------------------------------------------------------------------- /data/templates/app/data/meson.build: -------------------------------------------------------------------------------- 1 | # Install icons 2 | icon_sizes = ['16', '24', '32', '48', '64', '128'] 3 | 4 | foreach i : icon_sizes 5 | install_data ( 6 | join_paths ('icons', i, meson.project_name () + '.svg'), 7 | install_dir: join_paths (get_option ('datadir'), 'icons', 'hicolor', i + 'x' + i, 'apps') 8 | ) 9 | install_data ( 10 | join_paths ('icons', i, meson.project_name () + '.svg'), 11 | install_dir: join_paths (get_option ('datadir'), 'icons', 'hicolor', i + 'x' + i + '@2', 'apps') 12 | ) 13 | endforeach 14 | 15 | # Translate and install our .desktop file so the Applications Menu will see it 16 | i18n.merge_file ( 17 | input: meson.project_name () + '.desktop.in', 18 | output: meson.project_name () + '.desktop', 19 | po_dir: join_paths (meson.source_root (), 'po', 'extra'), 20 | type: 'desktop', 21 | install: true, 22 | install_dir: join_paths (get_option ('datadir'), 'applications') 23 | ) 24 | 25 | # Translate and install our .appdata.xml file so AppCenter will see it 26 | i18n.merge_file ( 27 | input: meson.project_name () + '.appdata.xml.in', 28 | output: meson.project_name () + '.appdata.xml', 29 | po_dir: join_paths (meson.source_root (), 'po', 'extra'), 30 | install: true, 31 | install_dir: join_paths (get_option ('datadir'), 'metainfo') 32 | ) 33 | -------------------------------------------------------------------------------- /data/templates/app/meson.build: -------------------------------------------------------------------------------- 1 | # Project name, programming language and version 2 | project ( 3 | '{{execname}}', 4 | 'vala', 'c', 5 | version: '0.0.1' 6 | ) 7 | 8 | # Translation module 9 | i18n = import ('i18n') 10 | 11 | # Project arguments 12 | add_project_arguments ( 13 | '-DGETTEXT_PACKAGE="@0@"'.format (meson.project_name ()), 14 | language: 'c' 15 | ) 16 | 17 | # Listing dependencies 18 | dependencies = [ 19 | dependency ('glib-2.0'), 20 | dependency ('gtk+-3.0') 21 | ] 22 | 23 | subdir ('src') 24 | 25 | # Executable 26 | executable ( 27 | meson.project_name (), 28 | sources, 29 | dependencies: dependencies, 30 | install: true 31 | ) 32 | 33 | subdir ('data') 34 | subdir ('po') 35 | 36 | meson.add_install_script ('meson/post_install.py') 37 | -------------------------------------------------------------------------------- /data/templates/app/meson/post_install.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | from os import path, environ 4 | import subprocess 5 | 6 | prefix = environ.get('MESON_INSTALL_PREFIX', '/usr/local') 7 | schemadir = path.join(environ['MESON_INSTALL_PREFIX'], 'share', 'glib-2.0', 'schemas') 8 | datadir = path.join(prefix, 'share') 9 | desktop_database_dir = path.join(datadir, 'applications') 10 | 11 | if not environ.get('DESTDIR'): 12 | print('Compiling gsettings schemas…') 13 | subprocess.call(['glib-compile-schemas', schemadir]) 14 | print('Updating desktop database…') 15 | subprocess.call(['update-desktop-database', '-q', desktop_database_dir]) 16 | print('Updating icon cache…') 17 | subprocess.call(['gtk-update-icon-cache', '-qtf', path.join(datadir, 'icons', 'hicolor')]) 18 | -------------------------------------------------------------------------------- /data/templates/app/po/LINGUAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/templates/app/po/LINGUAS -------------------------------------------------------------------------------- /data/templates/app/po/POTFILES: -------------------------------------------------------------------------------- 1 | src/Application.vala 2 | -------------------------------------------------------------------------------- /data/templates/app/po/extra/LINGUAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/templates/app/po/extra/LINGUAS -------------------------------------------------------------------------------- /data/templates/app/po/extra/POTFILES: -------------------------------------------------------------------------------- 1 | data/{{execname}}.desktop.in 2 | data/{{execname}}.appdata.xml.in 3 | -------------------------------------------------------------------------------- /data/templates/app/po/extra/meson.build: -------------------------------------------------------------------------------- 1 | # Install metadata translations 2 | i18n.gettext ('extra', 3 | args: [ 4 | '--directory=' + meson.source_root (), 5 | '--from-code=UTF-8' 6 | ], 7 | install: false 8 | ) 9 | -------------------------------------------------------------------------------- /data/templates/app/po/meson.build: -------------------------------------------------------------------------------- 1 | # Install main translations 2 | i18n.gettext (meson.project_name (), 3 | args: [ 4 | '--directory=' + meson.source_root (), 5 | '--from-code=UTF-8' 6 | ], 7 | preset: 'glib' 8 | ) 9 | 10 | subdir ('extra') 11 | -------------------------------------------------------------------------------- /data/templates/app/src/Application.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) {{yearrange}} {{name}} ({{site}}) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: {{name}} <{{email}}> 20 | */ 21 | 22 | public class Application : Gtk.Application { 23 | 24 | public Application () { 25 | Object ( 26 | application_id: "{{execname}}", 27 | flags: ApplicationFlags.FLAGS_NONE 28 | ); 29 | } 30 | 31 | protected override void activate () { 32 | var main_window = new Gtk.ApplicationWindow (this); 33 | main_window.default_height = 300; 34 | main_window.default_width = 300; 35 | main_window.title = "{{projectname}}"; 36 | main_window.show_all (); 37 | } 38 | 39 | public static int main (string[] args) { 40 | var app = new Application (); 41 | return app.run (args); 42 | } 43 | } 44 | 45 | -------------------------------------------------------------------------------- /data/templates/app/src/meson.build: -------------------------------------------------------------------------------- 1 | # Listing files to compile 2 | sources = files ( 3 | 'Application.vala' 4 | ) 5 | -------------------------------------------------------------------------------- /data/templates/switchboard-widget/.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | build/ 3 | -------------------------------------------------------------------------------- /data/templates/switchboard-widget/.travis.yml: -------------------------------------------------------------------------------- 1 | language: generic 2 | 3 | services: 4 | - docker 5 | 6 | env: 7 | - DEPENDENCY_PACKAGES="meson libgranite-dev libgtk-3-dev libswitchboard-2.0-dev valac" 8 | 9 | install: 10 | - docker pull elementary/docker:loki 11 | - docker run -v "$PWD":/tmp/build-dir elementary/docker:loki /bin/sh -c "apt-get update && apt-get -y install $DEPENDENCY_PACKAGES && cd /tmp/build-dir && meson build --prefix=/usr && cd build && ninja" 12 | - docker pull elementary/docker:loki-unstable 13 | - docker run -v "$PWD":/tmp/build-dir elementary/docker:loki-unstable /bin/sh -c "apt-get update && apt-get -y install $DEPENDENCY_PACKAGES && cd /tmp/build-dir && rm -rf build && meson build --prefix=/usr && cd build && ninja" 14 | 15 | script: 16 | - echo BUILDS PASSED 17 | -------------------------------------------------------------------------------- /data/templates/switchboard-widget/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/templates/switchboard-widget/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /data/templates/switchboard-widget/README.md: -------------------------------------------------------------------------------- 1 | # {{projectname}} 2 | 3 | ## Install, build and run 4 | 5 | ```bash 6 | # install elementary-sdk, meson and libswitchboard 7 | sudo apt install elementary-sdk meson libswitchboard-2.0-dev 8 | # clone repository 9 | git clone {{repourl}} {{projectname}} 10 | # cd to dir 11 | cd {{projectname}} 12 | # run meson 13 | meson build --prefix=/usr 14 | # cd to build, build and test 15 | cd build 16 | sudo ninja install 17 | # restart switchboard to load your widget into switchboard 18 | pkill switchboard -9 19 | ``` 20 | 21 | ## Generating pot file 22 | 23 | ```bash 24 | # after setting up meson build 25 | cd build 26 | 27 | # generates pot file 28 | ninja {{projectname}}-pot 29 | 30 | # to regenerate and propagate changes to every po file 31 | ninja {{projectname}}-update-po 32 | ``` 33 | -------------------------------------------------------------------------------- /data/templates/switchboard-widget/data/icons/128/icon.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/templates/switchboard-widget/data/icons/128/icon.svg -------------------------------------------------------------------------------- /data/templates/switchboard-widget/meson.build: -------------------------------------------------------------------------------- 1 | project('{{projectname}}', 'vala', 'c') 2 | 3 | gettext_name = meson.project_name() + '-plug' 4 | gnome = import('gnome') 5 | i18n = import('i18n') 6 | 7 | add_project_arguments( 8 | '-DGETTEXT_PACKAGE="@0@"'.format(gettext_name), 9 | language:'c' 10 | ) 11 | 12 | subdir('src') 13 | subdir('po') 14 | -------------------------------------------------------------------------------- /data/templates/switchboard-widget/po/LINGUAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/templates/switchboard-widget/po/LINGUAS -------------------------------------------------------------------------------- /data/templates/switchboard-widget/po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext(gettext_name, 2 | args: ['--directory=' + meson.source_root(), '--from-code=UTF-8'] 3 | ) 4 | -------------------------------------------------------------------------------- /data/templates/switchboard-widget/src/Backend/Settings.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) {{yearrange}} {{name}} ({{site}}) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA. 18 | * 19 | * Authored by: {{name}} <{{site}}> 20 | */ 21 | 22 | namespace {{projectname}}.Backend { 23 | public class Settings : Granite.Services.Settings { 24 | public Settings () { 25 | base ("{{execname}}"); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /data/templates/switchboard-widget/src/Plug.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) {{yearrange}} {{name}}. ({{site}}) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA. 18 | * 19 | * Authored by: {{name}} <{{site}}> 20 | */ 21 | 22 | namespace {{projectname}} { 23 | public class Plug : Switchboard.Plug { 24 | 25 | public Plug () { 26 | var settings = new Gee.TreeMap (null, null); 27 | Object (category: {{plugincategoryid}}, 28 | code_name: "{{plugincategory}}-{{projectname}}", 29 | display_name: _("{{plugdisplayname}}"), 30 | description: _("{{plugdescription}}"), 31 | icon: "{{execname}}", 32 | supported_settings: settings); 33 | } 34 | 35 | public override Gtk.Widget get_widget () { 36 | var settings = new {{projectname}}.Backend.Settings (); 37 | var widget = new {{projectname}}.Widgets.GeneralSection (settings); 38 | 39 | load_settings (); 40 | 41 | return widget; 42 | } 43 | 44 | public override void shown () { 45 | } 46 | 47 | public override void hidden () { 48 | } 49 | 50 | public override void search_callback (string location) { 51 | } 52 | 53 | public override async Gee.TreeMap search (string search) { 54 | return new Gee.TreeMap (null, null); 55 | } 56 | 57 | private void load_settings () { 58 | } 59 | } 60 | } 61 | 62 | public Switchboard.Plug get_plug (Module module) { 63 | debug ("Activating {{projectname}} plug"); 64 | 65 | var plug = new {{projectname}}.Plug (); 66 | 67 | return plug; 68 | } 69 | -------------------------------------------------------------------------------- /data/templates/switchboard-widget/src/Widgets/GeneralSection.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) {{yearrange}} {{name}}. ({{site}}) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA. 18 | * 19 | * Authored by: {{name}} <{{site}}> 20 | */ 21 | 22 | namespace {{projectname}}.Widgets { 23 | public class GeneralSection : Gtk.Grid { 24 | public {{projectname}}.Backend.Settings settings { get; construct; } 25 | 26 | public GeneralSection ({{projectname}}.Backend.Settings settings) { 27 | Object (settings: settings); 28 | } 29 | 30 | construct { 31 | // TODO 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /data/templates/switchboard-widget/src/Widgets/SettingLabel.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) {{yearrange}} {{name}}. ({{site}}) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA. 18 | * 19 | * Authored by: {{name}} <{{site}}> 20 | */ 21 | 22 | public class SettingLabel : Gtk.Label { 23 | public SettingLabel (string label) { 24 | Object (label: label); 25 | } 26 | 27 | construct { 28 | halign = Gtk.Align.END; 29 | margin_start = 12; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /data/templates/switchboard-widget/src/meson.build: -------------------------------------------------------------------------------- 1 | plug_files = files( 2 | 'Backend/Settings.vala', 3 | 'Plug.vala', 4 | 'Widgets/GeneralSection.vala', 5 | 'Widgets/SettingLabel.vala' 6 | ) 7 | 8 | switchboard_dep = dependency('switchboard-2.0') 9 | 10 | shared_module( 11 | meson.project_name(), 12 | plug_files, 13 | dependencies: [ 14 | dependency('glib-2.0'), 15 | dependency('gio-2.0'), 16 | dependency('gobject-2.0'), 17 | dependency('granite'), 18 | dependency('gtk+-3.0'), 19 | switchboard_dep 20 | ], 21 | install: true, 22 | install_dir : join_paths(switchboard_dep.get_pkgconfig_variable('plugsdir'), '{{plugincategory}}') 23 | ) 24 | -------------------------------------------------------------------------------- /data/templates/wingpanel-widget/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig 2 | root = true 3 | 4 | # elementary defaults 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | indent_size = tab 9 | indent_style = space 10 | insert_final_newline = true 11 | max_line_length = 80 12 | tab_width = 4 13 | 14 | [{*.xml,*.xml.in,*.yml}] 15 | tab_width = 2 16 | -------------------------------------------------------------------------------- /data/templates/wingpanel-widget/.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | build/ 3 | -------------------------------------------------------------------------------- /data/templates/wingpanel-widget/.travis.yml: -------------------------------------------------------------------------------- 1 | language: generic 2 | 3 | services: 4 | - docker 5 | 6 | env: 7 | - DEPENDENCY_PACKAGES="gobject-introspection libglib2.0-dev libgranite-dev libwingpanel-2.0-dev libxml2-dev meson valac" 8 | 9 | install: 10 | - docker pull elementary/docker:loki 11 | - docker run -v "$PWD":/tmp/build-dir elementary/docker:loki /bin/sh -c "apt-get update && apt-get -y install $DEPENDENCY_PACKAGES && cd /tmp/build-dir && meson build --prefix=/usr && cd build && ninja" 12 | - docker pull elementary/docker:loki-unstable 13 | - docker run -v "$PWD":/tmp/build-dir elementary/docker:loki-unstable /bin/sh -c "apt-get update && apt-get -y install $DEPENDENCY_PACKAGES && cd /tmp/build-dir && rm -rf build && meson build --prefix=/usr && cd build && ninja" 14 | 15 | script: 16 | - echo BUILDS PASSED 17 | -------------------------------------------------------------------------------- /data/templates/wingpanel-widget/README.md: -------------------------------------------------------------------------------- 1 | # {{projectname}} wingpanel indicator 2 | 3 | ## Install, build and run 4 | 5 | ```bash 6 | # install elementary-sdk, meson and libwingpanel 7 | sudo apt install elementary-sdk meson libwingpanel-2.0-dev 8 | # clone repository 9 | git clone {{repourl}} {{projectname}} 10 | # cd to dir 11 | cd {{projectname}} 12 | # run meson 13 | meson build --prefix=/usr 14 | # cd to build, build and test 15 | cd build 16 | sudo ninja install 17 | # restart switchboard to load your indicator 18 | pkill wingpanel -9 19 | ``` 20 | 21 | ## Generating pot file 22 | 23 | ```bash 24 | # after setting up meson build 25 | cd build 26 | 27 | # generates pot file 28 | ninja {{projectname}}-pot 29 | 30 | # to regenerate and propagate changes to every po file 31 | ninja {{projectname}}-update-po 32 | ``` 33 | -------------------------------------------------------------------------------- /data/templates/wingpanel-widget/meson.build: -------------------------------------------------------------------------------- 1 | project('{{projectname}}', 'vala', 'c') 2 | 3 | i18n = import('i18n') 4 | gettext_name = meson.project_name() + '-indicator' 5 | 6 | add_global_arguments('-DGETTEXT_PACKAGE="@0@"'.format(gettext_name), language:'c') 7 | 8 | wingpanel_dep = dependency('wingpanel-2.0') 9 | 10 | dependencies = [ 11 | dependency('glib-2.0'), 12 | dependency('gobject-2.0'), 13 | dependency('granite'), 14 | dependency('gtk+-3.0'), 15 | dependency('libxml-2.0'), 16 | wingpanel_dep 17 | ] 18 | 19 | files = [ 20 | 'src/Indicator.vala' 21 | ] 22 | 23 | shared_module( 24 | meson.project_name(), 25 | files, 26 | dependencies: dependencies, 27 | install: true, 28 | install_dir : wingpanel_dep.get_pkgconfig_variable('indicatorsdir') 29 | ) 30 | 31 | subdir('po') 32 | -------------------------------------------------------------------------------- /data/templates/wingpanel-widget/po/LINGUAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alcadica/develop/b54ee714036bc0b6dbeb0cd850a72b807e328afe/data/templates/wingpanel-widget/po/LINGUAS -------------------------------------------------------------------------------- /data/templates/wingpanel-widget/po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext(gettext_name, 2 | args: ['--directory=' + meson.source_root(), '--from-code=UTF-8'] 3 | ) 4 | -------------------------------------------------------------------------------- /data/templates/wingpanel-widget/src/Indicator.vala: -------------------------------------------------------------------------------- 1 | /*- 2 | * Copyright (c) {{yearrange}} {{name}} ({{site}}) 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU Library General Public License as published by 6 | * the Free Software Foundation, either version 2.1 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public License 15 | * along with this program. If not, see . 16 | * 17 | * Authored by: {{name}} <{{site}}> 18 | */ 19 | 20 | public class {{projectname}}.Indicator : Wingpanel.Indicator { 21 | private Gtk.Grid main_grid; 22 | private Gtk.Image display_icon; 23 | 24 | public Indicator () { 25 | Object (code_name: "", 26 | display_name: _("{{projectname}}"), 27 | description:_("{{indicatordescription}}")); 28 | this.display_icon = new Gtk.Image.from_icon_name ("{{execname}}", Gtk.IconSize.MENU); 29 | } 30 | 31 | public override Gtk.Widget get_display_widget () { 32 | if (display_icon == null) { 33 | // TODO 34 | } 35 | 36 | return display_icon; 37 | } 38 | 39 | public override Gtk.Widget? get_widget () { 40 | if (main_grid == null) { 41 | main_grid = new Gtk.Grid (); 42 | main_grid.set_orientation (Gtk.Orientation.VERTICAL); 43 | 44 | main_grid.show_all (); 45 | } 46 | 47 | return main_grid; 48 | } 49 | 50 | public override void opened () { } 51 | 52 | public override void closed () { } 53 | } 54 | 55 | public Wingpanel.Indicator? get_indicator (Module module, Wingpanel.IndicatorManager.ServerType server_type) { 56 | // Temporal workarround for Greeter crash 57 | if (server_type != Wingpanel.IndicatorManager.ServerType.SESSION) { 58 | return null; 59 | } 60 | debug ("Activating {{name}} widget"); 61 | var indicator = new {{projectname}}.Indicator (); 62 | return indicator; 63 | } 64 | -------------------------------------------------------------------------------- /debian/changelog: -------------------------------------------------------------------------------- 1 | com.github.alcadica.develop (0.24.0) xenial; urgency=low 2 | 3 | * Adds Russian translations 4 | 5 | -- Paolo Roth Mon, 11 Jan 2021 04:00:00 -0500 6 | 7 | com.github.alcadica.develop (0.23.0) xenial; urgency=low 8 | 9 | * Adds Dutch translations 10 | 11 | -- Paolo Roth Tue, 18 Aug 2020 04:00:00 -0500 12 | 13 | com.github.alcadica.develop (0.22.0) xenial; urgency=low 14 | 15 | * Adopts latest standards 16 | * Uses Native Gtk classes 17 | 18 | -- Paolo Roth Mon, 04 May 2020 04:00:00 -0500 19 | 20 | com.github.alcadica.develop (0.21.0) xenial; urgency=low 21 | 22 | * Improves UI 23 | 24 | -- Paolo Roth Wed, 15 Jan 2020 04:00:00 -0500 25 | 26 | com.github.alcadica.develop (0.20.1) xenial; urgency=low 27 | 28 | * Added french translation 29 | * Added portuguese translation 30 | * Added spanish translation 31 | 32 | -- Paolo Roth Sat, 13 Jun 2019 03:00:00 -0500 33 | 34 | com.github.alcadica.develop (0.20.0) xenial; urgency=low 35 | 36 | * Added french translation 37 | * Added portuguese translation 38 | * Added spanish translation 39 | 40 | -- Paolo Roth Sat, 13 Jun 2019 03:00:00 -0500 41 | 42 | com.github.alcadica.develop (0.6.1) xenial; urgency=low 43 | 44 | * Publish the app on Juno 45 | 46 | -- Paolo Roth Tue, 30 Sep 2018 03:00:00 -0500 47 | 48 | com.github.alcadica.develop (0.6) precise; urgency=low 49 | 50 | * Fills generated README.md files with installing and compiling instructions 51 | 52 | -- Paolo Roth Tue, 23 Jun 2018 03:00:00 -0500 53 | 54 | com.github.alcadica.develop (0.5) precise; urgency=low 55 | 56 | * Adds a small disclaimer about user data consumption (they are not saved on a server) 57 | 58 | -- Paolo Roth Tue, 29 May 2018 03:00:00 -0500 59 | 60 | com.github.alcadica.develop (0.4) precise; urgency=low 61 | 62 | * Fixes a small bug 63 | 64 | -- Paolo Roth Tue, 29 May 2018 03:00:00 -0500 65 | 66 | com.github.alcadica.develop (0.3) precise; urgency=low 67 | 68 | * Opens a folder on success 69 | * Bug fixes 70 | 71 | -- Paolo Roth Fri, 25 May 2018 12:00:00 -0500 72 | 73 | com.github.alcadica.develop (0.2) precise; urgency=low 74 | 75 | * Improves first run screen 76 | * Fixes issues with appdata.xml file 77 | 78 | -- Paolo Roth Sun, 20 May 2018 12:00:00 -0500 79 | 80 | com.github.alcadica.develop (0.1) precise; urgency=low 81 | 82 | * Initial Release. 83 | 84 | -- Paolo Roth Sat, 19 May 2018 12:00:00 -0500 85 | -------------------------------------------------------------------------------- /debian/compat: -------------------------------------------------------------------------------- 1 | 9 2 | -------------------------------------------------------------------------------- /debian/control: -------------------------------------------------------------------------------- 1 | Source: com.github.alcadica.develop 2 | Section: x11 3 | Priority: extra 4 | Maintainer: Paolo Roth 5 | Build-Depends: meson, 6 | debhelper (>= 9), 7 | gettext, 8 | libglib2.0-dev (>= 2.30.0), 9 | libgranite-dev, 10 | libgtk-3-dev, 11 | libswitchboard-2.0-dev, 12 | libwingpanel-2.0-dev, 13 | valac (>= 0.26) 14 | 15 | Standards-Version: 3.9.3 16 | Package: com.github.alcadica.develop 17 | Architecture: any 18 | Depends: ${misc:Depends}, ${shlibs:Depends} 19 | Description: Simplify apps development 20 | This is a tool which creates apps projects from scratch with few clicks 21 | -------------------------------------------------------------------------------- /debian/copyright: -------------------------------------------------------------------------------- 1 | Format: http://dep.debian.net/deps/dep5 2 | Upstream-Name: com.github.alcadica.develop 3 | Source: https://github.com/alcadica/develop 4 | 5 | Files: * 6 | Copyright: 2013 elementary LLC. 7 | License: GPL-3.0+ 8 | 9 | License: GPL-3.0+ 10 | This program is free software: you can redistribute it and/or modify 11 | it under the terms of the GNU General Public License as published by 12 | the Free Software Foundation, either version 3 of the License, or 13 | (at your option) any later version. 14 | . 15 | This package is distributed in the hope that it will be useful, 16 | but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | GNU General Public License for more details. 19 | . 20 | You should have received a copy of the GNU General Public License 21 | along with this program. If not, see . 22 | . 23 | On Debian systems, the complete text of the GNU General 24 | Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". 25 | 26 | -------------------------------------------------------------------------------- /debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- makefile -*- 3 | # Sample debian/rules that uses debhelper. 4 | # This file was originally written by Joey Hess and Craig Small. 5 | # As a special exception, when this file is copied by dh-make into a 6 | # dh-make output file, you may use that output file without restriction. 7 | # This special exception was added by Craig Small in version 0.37 of dh-make. 8 | 9 | # Uncomment this to turn on verbose mode. 10 | #export DH_VERBOSE=1 11 | 12 | %: 13 | dh $@ 14 | 15 | override_dh_auto_clean: 16 | rm -rf debian/build 17 | 18 | override_dh_auto_configure: 19 | mkdir -p debian/build 20 | cd debian/build && meson --prefix=/usr ../.. 21 | 22 | override_dh_auto_build: 23 | cd debian/build && ninja -v 24 | 25 | override_dh_auto_test: 26 | cd debian/build && ninja test 27 | 28 | override_dh_auto_install: 29 | cd debian/build && DESTDIR=${CURDIR}/debian/com.github.alcadica.develop ninja install -------------------------------------------------------------------------------- /debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (native) 2 | -------------------------------------------------------------------------------- /meson.build: -------------------------------------------------------------------------------- 1 | project('com.github.alcadica.develop', 'vala', 'c', version: '0.0.5') 2 | 3 | gnome = import('gnome') 4 | i18n = import('i18n') 5 | 6 | add_project_arguments( 7 | '-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()), 8 | language: 'c' 9 | ) 10 | 11 | dependencies = [ 12 | dependency('gio-unix-2.0', version: '>=2.20'), 13 | dependency('granite'), 14 | dependency('switchboard-2.0'), 15 | dependency('wingpanel-2.0'), 16 | ] 17 | 18 | subdir('src') 19 | 20 | executable( 21 | meson.project_name(), 22 | sources, 23 | dependencies: dependencies, 24 | install: true 25 | ) 26 | 27 | subdir('data') 28 | subdir('po') 29 | 30 | meson.add_install_script('meson/post_install.py') 31 | -------------------------------------------------------------------------------- /meson/post_install.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | from os import path, environ 4 | import subprocess 5 | 6 | prefix = environ.get('MESON_INSTALL_PREFIX', '/usr/local') 7 | schemadir = path.join(environ['MESON_INSTALL_PREFIX'], 'share', 'glib-2.0', 'schemas') 8 | datadir = path.join(prefix, 'share') 9 | desktop_database_dir = path.join(datadir, 'applications') 10 | 11 | if not environ.get('DESTDIR'): 12 | print('Compiling gsettings schemas…') 13 | subprocess.call(['glib-compile-schemas', schemadir]) 14 | print('Updating desktop database…') 15 | subprocess.call(['update-desktop-database', '-q', desktop_database_dir]) 16 | print('Updating icon cache…') 17 | subprocess.call(['gtk-update-icon-cache', '-qtf', path.join(datadir, 'icons', 'hicolor')]) 18 | -------------------------------------------------------------------------------- /po/LINGUAS: -------------------------------------------------------------------------------- 1 | es 2 | fr 3 | nl 4 | pt 5 | ru -------------------------------------------------------------------------------- /po/POTFILES: -------------------------------------------------------------------------------- 1 | src/Application.vala 2 | src/Views/MainView.vala 3 | src/Views/Partials/Forms/FormBase.vala 4 | src/Views/Partials/Forms/FormNewApp.vala 5 | src/Views/Partials/Forms/FormNewSwitchboardWidget.vala 6 | src/Views/Partials/Forms/FormNewWingpanelWidget.vala 7 | src/Views/Partials/Forms/FormUserData.vala 8 | src/Views/Partials/Settings/SettingsBase.vala 9 | src/Views/Partials/Settings/UserDataSettings.vala 10 | src/Views/Partials/Settings/UserDataSettingsFirstRun.vala 11 | src/Views/Partials/Window/HeaderBar.vala 12 | src/Views/ProjectEditingView.vala 13 | src/Views/SettingsView.vala 14 | src/Views/WelcomeView.vala 15 | src/Widgets/ActionBar.vala 16 | src/Widgets/EntryWithLabel.vala 17 | -------------------------------------------------------------------------------- /po/com.github.alcadica.develop.pot: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.alcadica.develop package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: com.github.alcadica.develop\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2021-01-08 21:03+0400\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=CHARSET\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: src/Application.vala:25 21 | msgid "Develop" 22 | msgstr "" 23 | 24 | #: src/Application.vala:73 25 | msgid "Preferences" 26 | msgstr "" 27 | 28 | #: src/Views/Partials/Forms/FormNewApp.vala:34 29 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:48 30 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:35 31 | msgid "Choose project folder" 32 | msgstr "" 33 | 34 | #: src/Views/Partials/Forms/FormNewApp.vala:38 35 | msgid "Create a new elementary App" 36 | msgstr "" 37 | 38 | #: src/Views/Partials/Forms/FormNewApp.vala:39 39 | msgid "App name" 40 | msgstr "" 41 | 42 | #: src/Views/Partials/Forms/FormNewApp.vala:40 43 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:56 44 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:42 45 | msgid "RDNN name" 46 | msgstr "" 47 | 48 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:52 49 | msgid "Switchboard category" 50 | msgstr "" 51 | 52 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:53 53 | msgid "Create a new Switchboard Plug" 54 | msgstr "" 55 | 56 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:54 57 | msgid "Plug name" 58 | msgstr "" 59 | 60 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:55 61 | msgid "Plug description" 62 | msgstr "" 63 | 64 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:61 65 | msgid "Personal" 66 | msgstr "" 67 | 68 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:62 69 | msgid "Hardware" 70 | msgstr "" 71 | 72 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:63 73 | msgid "Network" 74 | msgstr "" 75 | 76 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:64 77 | msgid "System" 78 | msgstr "" 79 | 80 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:65 81 | msgid "Other" 82 | msgstr "" 83 | 84 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:39 85 | msgid "Create a new Wingpanel Indicator" 86 | msgstr "" 87 | 88 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:40 89 | msgid "Indicator description" 90 | msgstr "" 91 | 92 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:41 93 | msgid "Indicator name" 94 | msgstr "" 95 | 96 | #: src/Views/Partials/Forms/FormUserData.vala:34 97 | msgid "Name:" 98 | msgstr "" 99 | 100 | #: src/Views/Partials/Forms/FormUserData.vala:34 101 | msgid "John Doe" 102 | msgstr "" 103 | 104 | #: src/Views/Partials/Forms/FormUserData.vala:35 105 | msgid "Email:" 106 | msgstr "" 107 | 108 | #: src/Views/Partials/Forms/FormUserData.vala:35 109 | msgid "myemail@gmail.com" 110 | msgstr "" 111 | 112 | #: src/Views/Partials/Forms/FormUserData.vala:36 113 | msgid "Personal github address:" 114 | msgstr "" 115 | 116 | #: src/Views/Partials/Forms/FormUserData.vala:36 117 | msgid "https://github.com/yourname" 118 | msgstr "" 119 | 120 | #: src/Views/Partials/Forms/FormUserData.vala:37 121 | msgid "Personal website:" 122 | msgstr "" 123 | 124 | #: src/Views/Partials/Forms/FormUserData.vala:37 125 | msgid "https://www.mywebsite.com" 126 | msgstr "" 127 | 128 | #: src/Views/Partials/Settings/UserDataSettings.vala:27 129 | #: src/Views/SettingsView.vala:34 130 | msgid "User settings" 131 | msgstr "" 132 | 133 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:32 134 | msgid "First run setup" 135 | msgstr "" 136 | 137 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:33 138 | msgid "Before proceeding I'd love to know more about you" 139 | msgstr "" 140 | 141 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:34 142 | msgid "Your data will not be stored in a server" 143 | msgstr "" 144 | 145 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:54 146 | msgid "Save user data" 147 | msgstr "" 148 | 149 | #: src/Views/Partials/Window/HeaderBar.vala:28 150 | msgid "Back" 151 | msgstr "" 152 | 153 | #: src/Views/SettingsView.vala:34 154 | msgid "Sets your personal developer data" 155 | msgstr "" 156 | 157 | #: src/Views/WelcomeView.vala:33 158 | msgid "Develop for elementary" 159 | msgstr "" 160 | 161 | #: src/Views/WelcomeView.vala:34 162 | msgid "Choose what you wish to develop" 163 | msgstr "" 164 | 165 | #: src/Views/WelcomeView.vala:39 166 | msgid "App" 167 | msgstr "" 168 | 169 | #: src/Views/WelcomeView.vala:39 170 | msgid "Create a new elementary OS application." 171 | msgstr "" 172 | 173 | #: src/Views/WelcomeView.vala:40 174 | msgid "Switchboard plug" 175 | msgstr "" 176 | 177 | #: src/Views/WelcomeView.vala:40 178 | msgid "Create a new elementary OS switchboard plug." 179 | msgstr "" 180 | 181 | #: src/Views/WelcomeView.vala:41 182 | msgid "Wingpanel indicator" 183 | msgstr "" 184 | 185 | #: src/Views/WelcomeView.vala:41 186 | msgid "Create a new elementary OS wingpanel indicator." 187 | msgstr "" 188 | 189 | #: src/Widgets/ActionBar.vala:32 190 | msgid "Create" 191 | msgstr "" 192 | 193 | #: src/Widgets/ActionBar.vala:33 194 | msgid "Undo" 195 | msgstr "" 196 | 197 | #: src/Widgets/EntryWithLabel.vala:61 198 | msgid "Optional" 199 | msgstr "" 200 | -------------------------------------------------------------------------------- /po/es.po: -------------------------------------------------------------------------------- 1 | # Spanish translations for the com.github.alcadica.develop package. 2 | # Copyright (C) 2019 THE com.github.alcadica.develop'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.alcadica.develop package. 4 | # iuninefrendor, 2019. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: com.github.alcadica.develop\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2021-01-08 21:03+0400\n" 12 | "PO-Revision-Date: 2019-07-04 19:43+0100\n" 13 | "Last-Translator: iuninefrendor\n" 14 | "Language-Team: Spanish\n" 15 | "Language: es\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: src/Application.vala:25 21 | msgid "Develop" 22 | msgstr "Develop" 23 | 24 | #: src/Application.vala:73 25 | msgid "Preferences" 26 | msgstr "Preferencias" 27 | 28 | #: src/Views/Partials/Forms/FormNewApp.vala:34 29 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:48 30 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:35 31 | msgid "Choose project folder" 32 | msgstr "Seleccionar carpeta de proyecto" 33 | 34 | #: src/Views/Partials/Forms/FormNewApp.vala:38 35 | msgid "Create a new elementary App" 36 | msgstr "Crear una nueva aplicación de elementary" 37 | 38 | #: src/Views/Partials/Forms/FormNewApp.vala:39 39 | msgid "App name" 40 | msgstr "Nombre de la Aplicación" 41 | 42 | #: src/Views/Partials/Forms/FormNewApp.vala:40 43 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:56 44 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:42 45 | msgid "RDNN name" 46 | msgstr "Nombre RDNN" 47 | 48 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:52 49 | msgid "Switchboard category" 50 | msgstr "Categoría de Switchboard" 51 | 52 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:53 53 | msgid "Create a new Switchboard Plug" 54 | msgstr "Crear un nuevo plugin de Switchboard" 55 | 56 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:54 57 | msgid "Plug name" 58 | msgstr "Nombre del plugin" 59 | 60 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:55 61 | msgid "Plug description" 62 | msgstr "Descripción del plugin" 63 | 64 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:61 65 | msgid "Personal" 66 | msgstr "Personal" 67 | 68 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:62 69 | msgid "Hardware" 70 | msgstr "Hardware" 71 | 72 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:63 73 | msgid "Network" 74 | msgstr "Redes" 75 | 76 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:64 77 | msgid "System" 78 | msgstr "Sistema" 79 | 80 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:65 81 | msgid "Other" 82 | msgstr "Otros" 83 | 84 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:39 85 | msgid "Create a new Wingpanel Indicator" 86 | msgstr "Crear un nuevo indicador de Wingpanel" 87 | 88 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:40 89 | msgid "Indicator description" 90 | msgstr "Descripción del indicador" 91 | 92 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:41 93 | msgid "Indicator name" 94 | msgstr "Nombre del indicador" 95 | 96 | #: src/Views/Partials/Forms/FormUserData.vala:34 97 | msgid "Name:" 98 | msgstr "Nombre:" 99 | 100 | #: src/Views/Partials/Forms/FormUserData.vala:34 101 | msgid "John Doe" 102 | msgstr "Juan Pérez" 103 | 104 | #: src/Views/Partials/Forms/FormUserData.vala:35 105 | msgid "Email:" 106 | msgstr "Correo:" 107 | 108 | #: src/Views/Partials/Forms/FormUserData.vala:35 109 | msgid "myemail@gmail.com" 110 | msgstr "micorreo@gmail.com" 111 | 112 | #: src/Views/Partials/Forms/FormUserData.vala:36 113 | msgid "Personal github address:" 114 | msgstr "Dirección personal de Github:" 115 | 116 | #: src/Views/Partials/Forms/FormUserData.vala:36 117 | msgid "https://github.com/yourname" 118 | msgstr "https://github.com/tunombre" 119 | 120 | #: src/Views/Partials/Forms/FormUserData.vala:37 121 | msgid "Personal website:" 122 | msgstr "Sitio web personal:" 123 | 124 | #: src/Views/Partials/Forms/FormUserData.vala:37 125 | msgid "https://www.mywebsite.com" 126 | msgstr "https://www.misitioweb.com" 127 | 128 | #: src/Views/Partials/Settings/UserDataSettings.vala:27 129 | #: src/Views/SettingsView.vala:34 130 | msgid "User settings" 131 | msgstr "Configuración del usuario" 132 | 133 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:32 134 | msgid "First run setup" 135 | msgstr "Configuración" 136 | 137 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:33 138 | msgid "Before proceeding I'd love to know more about you" 139 | msgstr "Antes de continuar, me gustaría conocer más de tí" 140 | 141 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:34 142 | msgid "Your data will not be stored in a server" 143 | msgstr "Tu información no se almacenará en ningún servidor" 144 | 145 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:54 146 | msgid "Save user data" 147 | msgstr "Guardar información de usuario" 148 | 149 | #: src/Views/Partials/Window/HeaderBar.vala:28 150 | msgid "Back" 151 | msgstr "Atrás" 152 | 153 | #: src/Views/SettingsView.vala:34 154 | msgid "Sets your personal developer data" 155 | msgstr "Define tu información de desarrollador" 156 | 157 | #: src/Views/WelcomeView.vala:33 158 | msgid "Develop for elementary" 159 | msgstr "Desarrolla para elementary" 160 | 161 | #: src/Views/WelcomeView.vala:34 162 | msgid "Choose what you wish to develop" 163 | msgstr "Elige lo que deseas desarrollar" 164 | 165 | #: src/Views/WelcomeView.vala:39 166 | msgid "App" 167 | msgstr "Aplicación" 168 | 169 | #: src/Views/WelcomeView.vala:39 170 | msgid "Create a new elementary OS application." 171 | msgstr "Crear una nueva aplicación de elementary OS." 172 | 173 | #: src/Views/WelcomeView.vala:40 174 | msgid "Switchboard plug" 175 | msgstr "Plugin de Switchboard" 176 | 177 | #: src/Views/WelcomeView.vala:40 178 | msgid "Create a new elementary OS switchboard plug." 179 | msgstr "Crear un nuevo plugin de Switchboard." 180 | 181 | #: src/Views/WelcomeView.vala:41 182 | msgid "Wingpanel indicator" 183 | msgstr "Indicador de Wingpanel" 184 | 185 | #: src/Views/WelcomeView.vala:41 186 | msgid "Create a new elementary OS wingpanel indicator." 187 | msgstr "Crear un nuevo indicador de Wingppanel." 188 | 189 | #: src/Widgets/ActionBar.vala:32 190 | msgid "Create" 191 | msgstr "Crear" 192 | 193 | #: src/Widgets/ActionBar.vala:33 194 | msgid "Undo" 195 | msgstr "Cancelar" 196 | 197 | #: src/Widgets/EntryWithLabel.vala:61 198 | msgid "Optional" 199 | msgstr "Opcional" 200 | -------------------------------------------------------------------------------- /po/extra/LINGUAS: -------------------------------------------------------------------------------- 1 | es 2 | fr 3 | nl 4 | pt 5 | ru -------------------------------------------------------------------------------- /po/extra/POTFILES: -------------------------------------------------------------------------------- 1 | data/com.github.alcadica.develop.desktop.in 2 | data/com.github.alcadica.develop.appdata.xml.in 3 | -------------------------------------------------------------------------------- /po/extra/extra.pot: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the extra package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: extra\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2021-01-08 21:04+0400\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=CHARSET\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: data/com.github.alcadica.develop.desktop.in:4 21 | #: data/com.github.alcadica.develop.appdata.xml.in:8 22 | msgid "Develop" 23 | msgstr "" 24 | 25 | #: data/com.github.alcadica.develop.desktop.in:5 26 | msgid "Create apps and widgets" 27 | msgstr "" 28 | 29 | #: data/com.github.alcadica.develop.desktop.in:6 30 | msgid "Develop App" 31 | msgstr "" 32 | 33 | #: data/com.github.alcadica.develop.desktop.in:8 34 | msgid "com.github.alcadica.develop" 35 | msgstr "" 36 | 37 | #: data/com.github.alcadica.develop.desktop.in:11 38 | msgid "Develop;" 39 | msgstr "" 40 | 41 | #: data/com.github.alcadica.develop.appdata.xml.in:9 42 | msgid "Creates easily apps and widgets" 43 | msgstr "" 44 | 45 | #: data/com.github.alcadica.develop.appdata.xml.in:11 46 | msgid "A simple tool to help developers to develop their own apps and widgets." 47 | msgstr "" 48 | 49 | #: data/com.github.alcadica.develop.appdata.xml.in:14 50 | msgid "" 51 | "With this app you can scaffold an App, a Switchboard Widget or a Wingpanel " 52 | "Indicator" 53 | msgstr "" 54 | 55 | #: data/com.github.alcadica.develop.appdata.xml.in:21 56 | msgid "I18n" 57 | msgstr "" 58 | 59 | #: data/com.github.alcadica.develop.appdata.xml.in:23 60 | msgid "Adds Dutch translations" 61 | msgstr "" 62 | 63 | #: data/com.github.alcadica.develop.appdata.xml.in:29 64 | msgid "Various improvements" 65 | msgstr "" 66 | 67 | #: data/com.github.alcadica.develop.appdata.xml.in:31 68 | msgid "Adopts latest standards" 69 | msgstr "" 70 | 71 | #: data/com.github.alcadica.develop.appdata.xml.in:32 72 | msgid "Uses Native Gtk classes" 73 | msgstr "" 74 | 75 | #: data/com.github.alcadica.develop.appdata.xml.in:38 76 | msgid "UI improvements" 77 | msgstr "" 78 | 79 | #: data/com.github.alcadica.develop.appdata.xml.in:40 80 | msgid "Improves UI" 81 | msgstr "" 82 | 83 | #: data/com.github.alcadica.develop.appdata.xml.in:46 84 | #: data/com.github.alcadica.develop.appdata.xml.in:57 85 | #: data/com.github.alcadica.develop.appdata.xml.in:68 86 | msgid "Updates translations" 87 | msgstr "" 88 | 89 | #: data/com.github.alcadica.develop.appdata.xml.in:48 90 | #: data/com.github.alcadica.develop.appdata.xml.in:59 91 | #: data/com.github.alcadica.develop.appdata.xml.in:70 92 | msgid "Updates translations files" 93 | msgstr "" 94 | 95 | #: data/com.github.alcadica.develop.appdata.xml.in:49 96 | #: data/com.github.alcadica.develop.appdata.xml.in:60 97 | #: data/com.github.alcadica.develop.appdata.xml.in:71 98 | msgid "Adds French translations (@NathanBnm)" 99 | msgstr "" 100 | 101 | #: data/com.github.alcadica.develop.appdata.xml.in:50 102 | #: data/com.github.alcadica.develop.appdata.xml.in:61 103 | msgid "Adds Spanish translations (@iuninefrendor)" 104 | msgstr "" 105 | 106 | #: data/com.github.alcadica.develop.appdata.xml.in:51 107 | #: data/com.github.alcadica.develop.appdata.xml.in:62 108 | msgid "Adds Portuguese translations (@aimproxy)" 109 | msgstr "" 110 | 111 | #: data/com.github.alcadica.develop.appdata.xml.in:78 112 | msgid "Publish the app on Juno" 113 | msgstr "" 114 | 115 | #: data/com.github.alcadica.develop.appdata.xml.in:85 116 | msgid "" 117 | "Fills generated README.md files with installing and compiling instructions" 118 | msgstr "" 119 | 120 | #: data/com.github.alcadica.develop.appdata.xml.in:92 121 | msgid "" 122 | "Adds a small disclaimer about user data consumption (they are not saved on a " 123 | "server)" 124 | msgstr "" 125 | 126 | #: data/com.github.alcadica.develop.appdata.xml.in:99 127 | msgid "Fixes a small bug" 128 | msgstr "" 129 | 130 | #: data/com.github.alcadica.develop.appdata.xml.in:105 131 | msgid "New features:" 132 | msgstr "" 133 | 134 | #: data/com.github.alcadica.develop.appdata.xml.in:107 135 | msgid "Opens a folder on success" 136 | msgstr "" 137 | 138 | #: data/com.github.alcadica.develop.appdata.xml.in:109 139 | msgid "Bug fixes:" 140 | msgstr "" 141 | 142 | #: data/com.github.alcadica.develop.appdata.xml.in:111 143 | msgid "Don't create folders in home directory" 144 | msgstr "" 145 | 146 | #: data/com.github.alcadica.develop.appdata.xml.in:112 147 | msgid "Use \"office-contact\" instead of \"vcard\" icon" 148 | msgstr "" 149 | 150 | #: data/com.github.alcadica.develop.appdata.xml.in:113 151 | msgid "Welcome View is too big" 152 | msgstr "" 153 | 154 | #: data/com.github.alcadica.develop.appdata.xml.in:120 155 | msgid "Improves first run screen" 156 | msgstr "" 157 | 158 | #: data/com.github.alcadica.develop.appdata.xml.in:126 159 | msgid "Features" 160 | msgstr "" 161 | 162 | #: data/com.github.alcadica.develop.appdata.xml.in:128 163 | msgid "Creates elementary OS app template" 164 | msgstr "" 165 | 166 | #: data/com.github.alcadica.develop.appdata.xml.in:129 167 | msgid "Creates elementary OS switchboard plug template" 168 | msgstr "" 169 | 170 | #: data/com.github.alcadica.develop.appdata.xml.in:130 171 | msgid "Creates elementary OS wingpanel indicator template" 172 | msgstr "" 173 | 174 | #: data/com.github.alcadica.develop.appdata.xml.in:167 175 | msgid "Alcadica" 176 | msgstr "" 177 | -------------------------------------------------------------------------------- /po/extra/fr.po: -------------------------------------------------------------------------------- 1 | # French translations for extra package. 2 | # Copyright (C) 2019 THE extra'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the extra package. 4 | # Automatically generated, 2019. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: extra\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-01-08 21:04+0400\n" 11 | "PO-Revision-Date: 2019-12-02 15:57+0100\n" 12 | "Last-Translator: Automatically generated\n" 13 | "Language-Team: none\n" 14 | "Language: fr\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" 19 | 20 | #: data/com.github.alcadica.develop.desktop.in:4 21 | #: data/com.github.alcadica.develop.appdata.xml.in:8 22 | msgid "Develop" 23 | msgstr "Develop" 24 | 25 | #: data/com.github.alcadica.develop.desktop.in:5 26 | #, fuzzy 27 | msgid "Create apps and widgets" 28 | msgstr "Créez des applications et widgets pour elementary OS" 29 | 30 | #: data/com.github.alcadica.develop.desktop.in:6 31 | msgid "Develop App" 32 | msgstr "Application Develop" 33 | 34 | #: data/com.github.alcadica.develop.desktop.in:8 35 | msgid "com.github.alcadica.develop" 36 | msgstr "com.github.alcadica.develop" 37 | 38 | #: data/com.github.alcadica.develop.desktop.in:11 39 | msgid "Develop;" 40 | msgstr "Develop;" 41 | 42 | #: data/com.github.alcadica.develop.appdata.xml.in:9 43 | #, fuzzy 44 | msgid "Creates easily apps and widgets" 45 | msgstr "Créez des applications et widgets pour elementary OS" 46 | 47 | #: data/com.github.alcadica.develop.appdata.xml.in:11 48 | #, fuzzy 49 | msgid "A simple tool to help developers to develop their own apps and widgets." 50 | msgstr "" 51 | "Un simple outil pour aider les développeurs d'elementary OS à développer " 52 | "leurs propres applications et widgets." 53 | 54 | #: data/com.github.alcadica.develop.appdata.xml.in:14 55 | #, fuzzy 56 | msgid "" 57 | "With this app you can scaffold an App, a Switchboard Widget or a Wingpanel " 58 | "Indicator" 59 | msgstr "" 60 | "Avec cette application vous pouvez échaffauder une application pour " 61 | "elementary OS, un plug Switchboard ou un indicateur Wingpanel" 62 | 63 | #: data/com.github.alcadica.develop.appdata.xml.in:21 64 | msgid "I18n" 65 | msgstr "" 66 | 67 | #: data/com.github.alcadica.develop.appdata.xml.in:23 68 | #, fuzzy 69 | msgid "Adds Dutch translations" 70 | msgstr "Mise à jour des traductions" 71 | 72 | #: data/com.github.alcadica.develop.appdata.xml.in:29 73 | msgid "Various improvements" 74 | msgstr "" 75 | 76 | #: data/com.github.alcadica.develop.appdata.xml.in:31 77 | msgid "Adopts latest standards" 78 | msgstr "" 79 | 80 | #: data/com.github.alcadica.develop.appdata.xml.in:32 81 | msgid "Uses Native Gtk classes" 82 | msgstr "" 83 | 84 | #: data/com.github.alcadica.develop.appdata.xml.in:38 85 | msgid "UI improvements" 86 | msgstr "" 87 | 88 | #: data/com.github.alcadica.develop.appdata.xml.in:40 89 | msgid "Improves UI" 90 | msgstr "" 91 | 92 | #: data/com.github.alcadica.develop.appdata.xml.in:46 93 | #: data/com.github.alcadica.develop.appdata.xml.in:57 94 | #: data/com.github.alcadica.develop.appdata.xml.in:68 95 | msgid "Updates translations" 96 | msgstr "Mise à jour des traductions" 97 | 98 | #: data/com.github.alcadica.develop.appdata.xml.in:48 99 | #: data/com.github.alcadica.develop.appdata.xml.in:59 100 | #: data/com.github.alcadica.develop.appdata.xml.in:70 101 | msgid "Updates translations files" 102 | msgstr "Mise à jour des fichiers de traduction" 103 | 104 | #: data/com.github.alcadica.develop.appdata.xml.in:49 105 | #: data/com.github.alcadica.develop.appdata.xml.in:60 106 | #: data/com.github.alcadica.develop.appdata.xml.in:71 107 | msgid "Adds French translations (@NathanBnm)" 108 | msgstr "Ajout de traductions françaises" 109 | 110 | #: data/com.github.alcadica.develop.appdata.xml.in:50 111 | #: data/com.github.alcadica.develop.appdata.xml.in:61 112 | #, fuzzy 113 | msgid "Adds Spanish translations (@iuninefrendor)" 114 | msgstr "Ajout de traductions françaises" 115 | 116 | #: data/com.github.alcadica.develop.appdata.xml.in:51 117 | #: data/com.github.alcadica.develop.appdata.xml.in:62 118 | #, fuzzy 119 | msgid "Adds Portuguese translations (@aimproxy)" 120 | msgstr "Ajout de traductions françaises" 121 | 122 | #: data/com.github.alcadica.develop.appdata.xml.in:78 123 | msgid "Publish the app on Juno" 124 | msgstr "Publication de l'application pour Juno" 125 | 126 | #: data/com.github.alcadica.develop.appdata.xml.in:85 127 | msgid "" 128 | "Fills generated README.md files with installing and compiling instructions" 129 | msgstr "" 130 | "Ajout du fichier README.md avec instructions d'installation et de compilation" 131 | 132 | #: data/com.github.alcadica.develop.appdata.xml.in:92 133 | msgid "" 134 | "Adds a small disclaimer about user data consumption (they are not saved on a " 135 | "server)" 136 | msgstr "" 137 | "Ajout d'un petit avertissement concernant l'utilisation des données des " 138 | "utilisateurs(elles ne sont pas sauvegardées sur un serveur)" 139 | 140 | #: data/com.github.alcadica.develop.appdata.xml.in:99 141 | msgid "Fixes a small bug" 142 | msgstr "Correction d'un léger bug" 143 | 144 | #: data/com.github.alcadica.develop.appdata.xml.in:105 145 | msgid "New features:" 146 | msgstr "Nouvelles fonctionnalités :" 147 | 148 | #: data/com.github.alcadica.develop.appdata.xml.in:107 149 | msgid "Opens a folder on success" 150 | msgstr "Ouvre le dossier en cas de succès" 151 | 152 | #: data/com.github.alcadica.develop.appdata.xml.in:109 153 | msgid "Bug fixes:" 154 | msgstr "Correction de bugs :" 155 | 156 | #: data/com.github.alcadica.develop.appdata.xml.in:111 157 | msgid "Don't create folders in home directory" 158 | msgstr "Ne créée pas de dossiers dans le répertoire home" 159 | 160 | #: data/com.github.alcadica.develop.appdata.xml.in:112 161 | msgid "Use \"office-contact\" instead of \"vcard\" icon" 162 | msgstr "Utilise l'icône « office-contact » au lieu de « vcard »" 163 | 164 | #: data/com.github.alcadica.develop.appdata.xml.in:113 165 | msgid "Welcome View is too big" 166 | msgstr "L'écran de bienvenue était trop grand" 167 | 168 | #: data/com.github.alcadica.develop.appdata.xml.in:120 169 | msgid "Improves first run screen" 170 | msgstr "Amélioration de l'écran de configuration" 171 | 172 | #: data/com.github.alcadica.develop.appdata.xml.in:126 173 | msgid "Features" 174 | msgstr "Fonctionnalités" 175 | 176 | #: data/com.github.alcadica.develop.appdata.xml.in:128 177 | msgid "Creates elementary OS app template" 178 | msgstr "Créée la structure d'une application elementary OS" 179 | 180 | #: data/com.github.alcadica.develop.appdata.xml.in:129 181 | msgid "Creates elementary OS switchboard plug template" 182 | msgstr "Créée la structure d'un plug Switchboard elementary OS" 183 | 184 | #: data/com.github.alcadica.develop.appdata.xml.in:130 185 | msgid "Creates elementary OS wingpanel indicator template" 186 | msgstr "Créée la structure d'un indicateur Wingpanel elementary OS" 187 | 188 | #: data/com.github.alcadica.develop.appdata.xml.in:167 189 | msgid "Alcadica" 190 | msgstr "Alcadica" 191 | -------------------------------------------------------------------------------- /po/extra/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext('extra', 2 | args: [ 3 | '--directory=' + meson.source_root(), 4 | '--from-code=UTF-8' 5 | ], 6 | preset: 'glib', 7 | install: false 8 | ) 9 | -------------------------------------------------------------------------------- /po/extra/nl.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the extra package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: extra\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-01-08 21:04+0400\n" 11 | "PO-Revision-Date: 2020-08-18 14:18+0200\n" 12 | "Last-Translator: Heimen Stoffels \n" 13 | "Language-Team: \n" 14 | "Language: nl\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Poedit 2.4.1\n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | 21 | #: data/com.github.alcadica.develop.desktop.in:4 22 | #: data/com.github.alcadica.develop.appdata.xml.in:8 23 | msgid "Develop" 24 | msgstr "Develop" 25 | 26 | #: data/com.github.alcadica.develop.desktop.in:5 27 | msgid "Create apps and widgets" 28 | msgstr "Maak toepassingen en widgets" 29 | 30 | #: data/com.github.alcadica.develop.desktop.in:6 31 | msgid "Develop App" 32 | msgstr "Toepassingen ontwikkelen" 33 | 34 | #: data/com.github.alcadica.develop.desktop.in:8 35 | msgid "com.github.alcadica.develop" 36 | msgstr "com.github.alcadica.develop" 37 | 38 | #: data/com.github.alcadica.develop.desktop.in:11 39 | msgid "Develop;" 40 | msgstr "Develop;Ontwikkelen;Bouwen;Maken;Programmeren;" 41 | 42 | #: data/com.github.alcadica.develop.appdata.xml.in:9 43 | msgid "Creates easily apps and widgets" 44 | msgstr "Maak eenvoudig toepassingen en widgets" 45 | 46 | #: data/com.github.alcadica.develop.appdata.xml.in:11 47 | msgid "A simple tool to help developers to develop their own apps and widgets." 48 | msgstr "" 49 | "Een eenvoudig hulpprogramma voor het ontwikkelen van toepassingen en widgets." 50 | 51 | #: data/com.github.alcadica.develop.appdata.xml.in:14 52 | msgid "" 53 | "With this app you can scaffold an App, a Switchboard Widget or a Wingpanel " 54 | "Indicator" 55 | msgstr "" 56 | "Met deze toepassing kun je een toepassing, Switchboard-plug of Wingpanel-" 57 | "indicator maken." 58 | 59 | #: data/com.github.alcadica.develop.appdata.xml.in:21 60 | msgid "I18n" 61 | msgstr "" 62 | 63 | #: data/com.github.alcadica.develop.appdata.xml.in:23 64 | #, fuzzy 65 | msgid "Adds Dutch translations" 66 | msgstr "Vertalingen bijgewerkt" 67 | 68 | #: data/com.github.alcadica.develop.appdata.xml.in:29 69 | msgid "Various improvements" 70 | msgstr "" 71 | 72 | #: data/com.github.alcadica.develop.appdata.xml.in:31 73 | msgid "Adopts latest standards" 74 | msgstr "" 75 | 76 | #: data/com.github.alcadica.develop.appdata.xml.in:32 77 | msgid "Uses Native Gtk classes" 78 | msgstr "" 79 | 80 | #: data/com.github.alcadica.develop.appdata.xml.in:38 81 | msgid "UI improvements" 82 | msgstr "" 83 | 84 | #: data/com.github.alcadica.develop.appdata.xml.in:40 85 | msgid "Improves UI" 86 | msgstr "" 87 | 88 | #: data/com.github.alcadica.develop.appdata.xml.in:46 89 | #: data/com.github.alcadica.develop.appdata.xml.in:57 90 | #: data/com.github.alcadica.develop.appdata.xml.in:68 91 | msgid "Updates translations" 92 | msgstr "Vertalingen bijgewerkt" 93 | 94 | #: data/com.github.alcadica.develop.appdata.xml.in:48 95 | #: data/com.github.alcadica.develop.appdata.xml.in:59 96 | #: data/com.github.alcadica.develop.appdata.xml.in:70 97 | msgid "Updates translations files" 98 | msgstr "Vertaalbestanden bijgewerkt" 99 | 100 | #: data/com.github.alcadica.develop.appdata.xml.in:49 101 | #: data/com.github.alcadica.develop.appdata.xml.in:60 102 | #: data/com.github.alcadica.develop.appdata.xml.in:71 103 | msgid "Adds French translations (@NathanBnm)" 104 | msgstr "Franse vertaling, met dank aan @NathanBnm" 105 | 106 | #: data/com.github.alcadica.develop.appdata.xml.in:50 107 | #: data/com.github.alcadica.develop.appdata.xml.in:61 108 | msgid "Adds Spanish translations (@iuninefrendor)" 109 | msgstr "Spaanse vertaling, met dank aan @iuninefrendor" 110 | 111 | #: data/com.github.alcadica.develop.appdata.xml.in:51 112 | #: data/com.github.alcadica.develop.appdata.xml.in:62 113 | msgid "Adds Portuguese translations (@aimproxy)" 114 | msgstr "Portugese vertaling, met dank aan @aimproxy)" 115 | 116 | #: data/com.github.alcadica.develop.appdata.xml.in:78 117 | msgid "Publish the app on Juno" 118 | msgstr "Publiceren op Juno" 119 | 120 | #: data/com.github.alcadica.develop.appdata.xml.in:85 121 | msgid "" 122 | "Fills generated README.md files with installing and compiling instructions" 123 | msgstr "" 124 | "Voegt installatie- en compilatie-instructies toe aan gegenereerde README.md-" 125 | "bestanden" 126 | 127 | #: data/com.github.alcadica.develop.appdata.xml.in:92 128 | msgid "" 129 | "Adds a small disclaimer about user data consumption (they are not saved on a " 130 | "server)" 131 | msgstr "" 132 | "Voegt een korte vrijwaring toe over het gebruik van gebruikersgegevens " 133 | "(welke niet worden opgeslagen op een server)" 134 | 135 | #: data/com.github.alcadica.develop.appdata.xml.in:99 136 | msgid "Fixes a small bug" 137 | msgstr "Kleine fout opgelost" 138 | 139 | #: data/com.github.alcadica.develop.appdata.xml.in:105 140 | msgid "New features:" 141 | msgstr "Nieuwe mogelijkheden:" 142 | 143 | #: data/com.github.alcadica.develop.appdata.xml.in:107 144 | msgid "Opens a folder on success" 145 | msgstr "Opent een map na voltooiing" 146 | 147 | #: data/com.github.alcadica.develop.appdata.xml.in:109 148 | msgid "Bug fixes:" 149 | msgstr "Opgeloste fouten:" 150 | 151 | #: data/com.github.alcadica.develop.appdata.xml.in:111 152 | msgid "Don't create folders in home directory" 153 | msgstr "Maak geen mappen aan in de persoonlijke map" 154 | 155 | #: data/com.github.alcadica.develop.appdata.xml.in:112 156 | msgid "Use \"office-contact\" instead of \"vcard\" icon" 157 | msgstr "Gebruik het pictogram \"office-contact\" in plaats van \"vcard\"" 158 | 159 | #: data/com.github.alcadica.develop.appdata.xml.in:113 160 | msgid "Welcome View is too big" 161 | msgstr "Het welkomstscherm was te groot" 162 | 163 | #: data/com.github.alcadica.develop.appdata.xml.in:120 164 | msgid "Improves first run screen" 165 | msgstr "Instelhulp verbeterd" 166 | 167 | #: data/com.github.alcadica.develop.appdata.xml.in:126 168 | msgid "Features" 169 | msgstr "Kenmerken" 170 | 171 | #: data/com.github.alcadica.develop.appdata.xml.in:128 172 | msgid "Creates elementary OS app template" 173 | msgstr "Maak elementary OS-toepassingssjablonen" 174 | 175 | #: data/com.github.alcadica.develop.appdata.xml.in:129 176 | msgid "Creates elementary OS switchboard plug template" 177 | msgstr "Maak elementary OS-switchboardsjablonen" 178 | 179 | #: data/com.github.alcadica.develop.appdata.xml.in:130 180 | msgid "Creates elementary OS wingpanel indicator template" 181 | msgstr "Maak elementary OS-wingpanelsjablonen" 182 | 183 | #: data/com.github.alcadica.develop.appdata.xml.in:167 184 | msgid "Alcadica" 185 | msgstr "Alcadica" 186 | -------------------------------------------------------------------------------- /po/extra/pt.po: -------------------------------------------------------------------------------- 1 | # Portuguese translations for extra package. 2 | # Copyright (C) 2019 THE extra'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the extra package. 4 | # Automatically generated, 2019. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: extra\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-01-08 21:04+0400\n" 11 | "PO-Revision-Date: 2019-12-02 15:57+0100\n" 12 | "Last-Translator: Automatically generated\n" 13 | "Language-Team: none\n" 14 | "Language: pt\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | 20 | #: data/com.github.alcadica.develop.desktop.in:4 21 | #: data/com.github.alcadica.develop.appdata.xml.in:8 22 | msgid "Develop" 23 | msgstr "Develop" 24 | 25 | #: data/com.github.alcadica.develop.desktop.in:5 26 | #, fuzzy 27 | msgid "Create apps and widgets" 28 | msgstr "Criar aplicações e widgets para o elementaryOS" 29 | 30 | #: data/com.github.alcadica.develop.desktop.in:6 31 | msgid "Develop App" 32 | msgstr "Aplicação Develop" 33 | 34 | #: data/com.github.alcadica.develop.desktop.in:8 35 | msgid "com.github.alcadica.develop" 36 | msgstr "com.github.alcadica.develop" 37 | 38 | #: data/com.github.alcadica.develop.desktop.in:11 39 | msgid "Develop;" 40 | msgstr "Develop;" 41 | 42 | #: data/com.github.alcadica.develop.appdata.xml.in:9 43 | #, fuzzy 44 | msgid "Creates easily apps and widgets" 45 | msgstr "Criar aplicações e widgets para o elementaryOS" 46 | 47 | #: data/com.github.alcadica.develop.appdata.xml.in:11 48 | #, fuzzy 49 | msgid "A simple tool to help developers to develop their own apps and widgets." 50 | msgstr "" 51 | "Uma ferramenta simples para ajudar desenvolvedores do elementaryOS a " 52 | "desenvolver as suas próprias aplicações e widgets." 53 | 54 | #: data/com.github.alcadica.develop.appdata.xml.in:14 55 | #, fuzzy 56 | msgid "" 57 | "With this app you can scaffold an App, a Switchboard Widget or a Wingpanel " 58 | "Indicator" 59 | msgstr "" 60 | "Com esta aplicação você pode criar um aplicativo para o elementaryOS, um " 61 | "widget Switchboard ou um indicador Wingpanel" 62 | 63 | #: data/com.github.alcadica.develop.appdata.xml.in:21 64 | msgid "I18n" 65 | msgstr "" 66 | 67 | #: data/com.github.alcadica.develop.appdata.xml.in:23 68 | #, fuzzy 69 | msgid "Adds Dutch translations" 70 | msgstr "Atualizar traduções" 71 | 72 | #: data/com.github.alcadica.develop.appdata.xml.in:29 73 | msgid "Various improvements" 74 | msgstr "" 75 | 76 | #: data/com.github.alcadica.develop.appdata.xml.in:31 77 | msgid "Adopts latest standards" 78 | msgstr "" 79 | 80 | #: data/com.github.alcadica.develop.appdata.xml.in:32 81 | msgid "Uses Native Gtk classes" 82 | msgstr "" 83 | 84 | #: data/com.github.alcadica.develop.appdata.xml.in:38 85 | msgid "UI improvements" 86 | msgstr "" 87 | 88 | #: data/com.github.alcadica.develop.appdata.xml.in:40 89 | msgid "Improves UI" 90 | msgstr "" 91 | 92 | #: data/com.github.alcadica.develop.appdata.xml.in:46 93 | #: data/com.github.alcadica.develop.appdata.xml.in:57 94 | #: data/com.github.alcadica.develop.appdata.xml.in:68 95 | msgid "Updates translations" 96 | msgstr "Atualizar traduções" 97 | 98 | #: data/com.github.alcadica.develop.appdata.xml.in:48 99 | #: data/com.github.alcadica.develop.appdata.xml.in:59 100 | #: data/com.github.alcadica.develop.appdata.xml.in:70 101 | msgid "Updates translations files" 102 | msgstr "Atualizar ficheiros de tradução" 103 | 104 | #: data/com.github.alcadica.develop.appdata.xml.in:49 105 | #: data/com.github.alcadica.develop.appdata.xml.in:60 106 | #: data/com.github.alcadica.develop.appdata.xml.in:71 107 | msgid "Adds French translations (@NathanBnm)" 108 | msgstr "" 109 | 110 | #: data/com.github.alcadica.develop.appdata.xml.in:50 111 | #: data/com.github.alcadica.develop.appdata.xml.in:61 112 | msgid "Adds Spanish translations (@iuninefrendor)" 113 | msgstr "" 114 | 115 | #: data/com.github.alcadica.develop.appdata.xml.in:51 116 | #: data/com.github.alcadica.develop.appdata.xml.in:62 117 | msgid "Adds Portuguese translations (@aimproxy)" 118 | msgstr "" 119 | 120 | #: data/com.github.alcadica.develop.appdata.xml.in:78 121 | msgid "Publish the app on Juno" 122 | msgstr "Publicar a aplicação para Juno" 123 | 124 | #: data/com.github.alcadica.develop.appdata.xml.in:85 125 | msgid "" 126 | "Fills generated README.md files with installing and compiling instructions" 127 | msgstr "" 128 | "Preenche arquivos README.md gerados com instruções de instalação e compilação" 129 | 130 | #: data/com.github.alcadica.develop.appdata.xml.in:92 131 | msgid "" 132 | "Adds a small disclaimer about user data consumption (they are not saved on a " 133 | "server)" 134 | msgstr "" 135 | "Adiciona um pequeno aviso sobre o consumo de dados do usuário (isto nao é " 136 | "guardado num servidor)" 137 | 138 | #: data/com.github.alcadica.develop.appdata.xml.in:99 139 | msgid "Fixes a small bug" 140 | msgstr "Corrige um pequeno bug" 141 | 142 | #: data/com.github.alcadica.develop.appdata.xml.in:105 143 | msgid "New features:" 144 | msgstr "Novas foncionalidades:" 145 | 146 | #: data/com.github.alcadica.develop.appdata.xml.in:107 147 | msgid "Opens a folder on success" 148 | msgstr "Abrir a pasta de ficheiros se obtiver sucesso" 149 | 150 | #: data/com.github.alcadica.develop.appdata.xml.in:109 151 | msgid "Bug fixes:" 152 | msgstr "Correção de Bugs :" 153 | 154 | #: data/com.github.alcadica.develop.appdata.xml.in:111 155 | msgid "Don't create folders in home directory" 156 | msgstr "Não crie pastas no diretório inicial" 157 | 158 | #: data/com.github.alcadica.develop.appdata.xml.in:112 159 | msgid "Use \"office-contact\" instead of \"vcard\" icon" 160 | msgstr "Use « office-contact » em vez do ícone « vcard »" 161 | 162 | #: data/com.github.alcadica.develop.appdata.xml.in:113 163 | msgid "Welcome View is too big" 164 | msgstr "O Ecrã de Boas Vindas é muito grande" 165 | 166 | #: data/com.github.alcadica.develop.appdata.xml.in:120 167 | msgid "Improves first run screen" 168 | msgstr "Melhora a tela de primeira execução" 169 | 170 | #: data/com.github.alcadica.develop.appdata.xml.in:126 171 | msgid "Features" 172 | msgstr "Funcionalidades" 173 | 174 | #: data/com.github.alcadica.develop.appdata.xml.in:128 175 | msgid "Creates elementary OS app template" 176 | msgstr "Criar uma aplicação para o elementaryOS através de um template" 177 | 178 | #: data/com.github.alcadica.develop.appdata.xml.in:129 179 | msgid "Creates elementary OS switchboard plug template" 180 | msgstr "Criar um plug-in para o elementaryOS através de um template" 181 | 182 | #: data/com.github.alcadica.develop.appdata.xml.in:130 183 | msgid "Creates elementary OS wingpanel indicator template" 184 | msgstr "" 185 | "Criar um indicador Wingpanel para o elementary OS através de um template" 186 | 187 | #: data/com.github.alcadica.develop.appdata.xml.in:167 188 | msgid "Alcadica" 189 | msgstr "Alcadica" 190 | -------------------------------------------------------------------------------- /po/extra/ru.po: -------------------------------------------------------------------------------- 1 | # Russian translations for extra package. 2 | # Copyright (C) 2021 THE extra'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the extra package. 4 | # Automatically generated, 2021. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: extra\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-01-08 21:04+0400\n" 11 | "PO-Revision-Date: 2021-01-08 21:04+0400\n" 12 | "Last-Translator: Automatically generated\n" 13 | "Language-Team: none\n" 14 | "Language: ru\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=ASCII\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" 19 | "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" 20 | 21 | #: data/com.github.alcadica.develop.desktop.in:4 22 | #: data/com.github.alcadica.develop.appdata.xml.in:8 23 | msgid "Develop" 24 | msgstr "" 25 | 26 | #: data/com.github.alcadica.develop.desktop.in:5 27 | msgid "Create apps and widgets" 28 | msgstr "" 29 | 30 | #: data/com.github.alcadica.develop.desktop.in:6 31 | msgid "Develop App" 32 | msgstr "" 33 | 34 | #: data/com.github.alcadica.develop.desktop.in:8 35 | msgid "com.github.alcadica.develop" 36 | msgstr "" 37 | 38 | #: data/com.github.alcadica.develop.desktop.in:11 39 | msgid "Develop;" 40 | msgstr "" 41 | 42 | #: data/com.github.alcadica.develop.appdata.xml.in:9 43 | msgid "Creates easily apps and widgets" 44 | msgstr "" 45 | 46 | #: data/com.github.alcadica.develop.appdata.xml.in:11 47 | msgid "A simple tool to help developers to develop their own apps and widgets." 48 | msgstr "" 49 | 50 | #: data/com.github.alcadica.develop.appdata.xml.in:14 51 | msgid "" 52 | "With this app you can scaffold an App, a Switchboard Widget or a Wingpanel " 53 | "Indicator" 54 | msgstr "" 55 | 56 | #: data/com.github.alcadica.develop.appdata.xml.in:21 57 | msgid "I18n" 58 | msgstr "" 59 | 60 | #: data/com.github.alcadica.develop.appdata.xml.in:23 61 | msgid "Adds Dutch translations" 62 | msgstr "" 63 | 64 | #: data/com.github.alcadica.develop.appdata.xml.in:29 65 | msgid "Various improvements" 66 | msgstr "" 67 | 68 | #: data/com.github.alcadica.develop.appdata.xml.in:31 69 | msgid "Adopts latest standards" 70 | msgstr "" 71 | 72 | #: data/com.github.alcadica.develop.appdata.xml.in:32 73 | msgid "Uses Native Gtk classes" 74 | msgstr "" 75 | 76 | #: data/com.github.alcadica.develop.appdata.xml.in:38 77 | msgid "UI improvements" 78 | msgstr "" 79 | 80 | #: data/com.github.alcadica.develop.appdata.xml.in:40 81 | msgid "Improves UI" 82 | msgstr "" 83 | 84 | #: data/com.github.alcadica.develop.appdata.xml.in:46 85 | #: data/com.github.alcadica.develop.appdata.xml.in:57 86 | #: data/com.github.alcadica.develop.appdata.xml.in:68 87 | msgid "Updates translations" 88 | msgstr "" 89 | 90 | #: data/com.github.alcadica.develop.appdata.xml.in:48 91 | #: data/com.github.alcadica.develop.appdata.xml.in:59 92 | #: data/com.github.alcadica.develop.appdata.xml.in:70 93 | msgid "Updates translations files" 94 | msgstr "" 95 | 96 | #: data/com.github.alcadica.develop.appdata.xml.in:49 97 | #: data/com.github.alcadica.develop.appdata.xml.in:60 98 | #: data/com.github.alcadica.develop.appdata.xml.in:71 99 | msgid "Adds French translations (@NathanBnm)" 100 | msgstr "" 101 | 102 | #: data/com.github.alcadica.develop.appdata.xml.in:50 103 | #: data/com.github.alcadica.develop.appdata.xml.in:61 104 | msgid "Adds Spanish translations (@iuninefrendor)" 105 | msgstr "" 106 | 107 | #: data/com.github.alcadica.develop.appdata.xml.in:51 108 | #: data/com.github.alcadica.develop.appdata.xml.in:62 109 | msgid "Adds Portuguese translations (@aimproxy)" 110 | msgstr "" 111 | 112 | #: data/com.github.alcadica.develop.appdata.xml.in:78 113 | msgid "Publish the app on Juno" 114 | msgstr "" 115 | 116 | #: data/com.github.alcadica.develop.appdata.xml.in:85 117 | msgid "" 118 | "Fills generated README.md files with installing and compiling instructions" 119 | msgstr "" 120 | 121 | #: data/com.github.alcadica.develop.appdata.xml.in:92 122 | msgid "" 123 | "Adds a small disclaimer about user data consumption (they are not saved on a " 124 | "server)" 125 | msgstr "" 126 | 127 | #: data/com.github.alcadica.develop.appdata.xml.in:99 128 | msgid "Fixes a small bug" 129 | msgstr "" 130 | 131 | #: data/com.github.alcadica.develop.appdata.xml.in:105 132 | msgid "New features:" 133 | msgstr "" 134 | 135 | #: data/com.github.alcadica.develop.appdata.xml.in:107 136 | msgid "Opens a folder on success" 137 | msgstr "" 138 | 139 | #: data/com.github.alcadica.develop.appdata.xml.in:109 140 | msgid "Bug fixes:" 141 | msgstr "" 142 | 143 | #: data/com.github.alcadica.develop.appdata.xml.in:111 144 | msgid "Don't create folders in home directory" 145 | msgstr "" 146 | 147 | #: data/com.github.alcadica.develop.appdata.xml.in:112 148 | msgid "Use \"office-contact\" instead of \"vcard\" icon" 149 | msgstr "" 150 | 151 | #: data/com.github.alcadica.develop.appdata.xml.in:113 152 | msgid "Welcome View is too big" 153 | msgstr "" 154 | 155 | #: data/com.github.alcadica.develop.appdata.xml.in:120 156 | msgid "Improves first run screen" 157 | msgstr "" 158 | 159 | #: data/com.github.alcadica.develop.appdata.xml.in:126 160 | msgid "Features" 161 | msgstr "" 162 | 163 | #: data/com.github.alcadica.develop.appdata.xml.in:128 164 | msgid "Creates elementary OS app template" 165 | msgstr "" 166 | 167 | #: data/com.github.alcadica.develop.appdata.xml.in:129 168 | msgid "Creates elementary OS switchboard plug template" 169 | msgstr "" 170 | 171 | #: data/com.github.alcadica.develop.appdata.xml.in:130 172 | msgid "Creates elementary OS wingpanel indicator template" 173 | msgstr "" 174 | 175 | #: data/com.github.alcadica.develop.appdata.xml.in:167 176 | msgid "Alcadica" 177 | msgstr "" 178 | -------------------------------------------------------------------------------- /po/fr.po: -------------------------------------------------------------------------------- 1 | # French translations fot the com.github.alcadica.develop package. 2 | # Copyright (C) 2019 THE com.github.alcadica.develop'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.alcadica.develop package. 4 | # NathanBnm, 2019. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: com.github.alcadica.develop\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2021-01-08 21:03+0400\n" 12 | "PO-Revision-Date: 2019-03-19 18:28+0100\n" 13 | "Last-Translator: NathanBnm\n" 14 | "Language-Team: Français\n" 15 | "Language: fr\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: src/Application.vala:25 21 | msgid "Develop" 22 | msgstr "Develop" 23 | 24 | #: src/Application.vala:73 25 | msgid "Preferences" 26 | msgstr "Préférences" 27 | 28 | #: src/Views/Partials/Forms/FormNewApp.vala:34 29 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:48 30 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:35 31 | msgid "Choose project folder" 32 | msgstr "Choisir le dossier de projet" 33 | 34 | #: src/Views/Partials/Forms/FormNewApp.vala:38 35 | msgid "Create a new elementary App" 36 | msgstr "Créer une nouvelle application elementary" 37 | 38 | #: src/Views/Partials/Forms/FormNewApp.vala:39 39 | msgid "App name" 40 | msgstr "Nom de l'application" 41 | 42 | #: src/Views/Partials/Forms/FormNewApp.vala:40 43 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:56 44 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:42 45 | msgid "RDNN name" 46 | msgstr "Nom RDNN" 47 | 48 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:52 49 | msgid "Switchboard category" 50 | msgstr "Catégorie Switchboard" 51 | 52 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:53 53 | msgid "Create a new Switchboard Plug" 54 | msgstr "Créer un nouveau plug Switchboard" 55 | 56 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:54 57 | msgid "Plug name" 58 | msgstr "Nom du plug" 59 | 60 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:55 61 | msgid "Plug description" 62 | msgstr "Description du plug" 63 | 64 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:61 65 | msgid "Personal" 66 | msgstr "Personnel" 67 | 68 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:62 69 | msgid "Hardware" 70 | msgstr "Matériel" 71 | 72 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:63 73 | msgid "Network" 74 | msgstr "Réseau" 75 | 76 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:64 77 | msgid "System" 78 | msgstr "Système" 79 | 80 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:65 81 | msgid "Other" 82 | msgstr "Autre" 83 | 84 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:39 85 | msgid "Create a new Wingpanel Indicator" 86 | msgstr "Créer un nouvel indicateur Wingpanel" 87 | 88 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:40 89 | msgid "Indicator description" 90 | msgstr "Description de l'indicateur" 91 | 92 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:41 93 | msgid "Indicator name" 94 | msgstr "Nom de l'indicateur" 95 | 96 | #: src/Views/Partials/Forms/FormUserData.vala:34 97 | msgid "Name:" 98 | msgstr "Nom :" 99 | 100 | #: src/Views/Partials/Forms/FormUserData.vala:34 101 | msgid "John Doe" 102 | msgstr "Jean Dupont" 103 | 104 | #: src/Views/Partials/Forms/FormUserData.vala:35 105 | msgid "Email:" 106 | msgstr "E-mail :" 107 | 108 | #: src/Views/Partials/Forms/FormUserData.vala:35 109 | msgid "myemail@gmail.com" 110 | msgstr "monemail@gmail.com" 111 | 112 | #: src/Views/Partials/Forms/FormUserData.vala:36 113 | msgid "Personal github address:" 114 | msgstr "Adresse Github personnelle :" 115 | 116 | #: src/Views/Partials/Forms/FormUserData.vala:36 117 | msgid "https://github.com/yourname" 118 | msgstr "https://github.com/votrenom" 119 | 120 | #: src/Views/Partials/Forms/FormUserData.vala:37 121 | msgid "Personal website:" 122 | msgstr "Site web personnel :" 123 | 124 | #: src/Views/Partials/Forms/FormUserData.vala:37 125 | msgid "https://www.mywebsite.com" 126 | msgstr "https://www.monsite.com" 127 | 128 | #: src/Views/Partials/Settings/UserDataSettings.vala:27 129 | #: src/Views/SettingsView.vala:34 130 | msgid "User settings" 131 | msgstr "Paramètres utilisateur" 132 | 133 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:32 134 | msgid "First run setup" 135 | msgstr "Configuration" 136 | 137 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:33 138 | msgid "Before proceeding I'd love to know more about you" 139 | msgstr "Avant de commencer j'aimerai en savoir un peu plus sur vous" 140 | 141 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:34 142 | msgid "Your data will not be stored in a server" 143 | msgstr "Vos données ne seront pas stockées sur un serveur" 144 | 145 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:54 146 | msgid "Save user data" 147 | msgstr "Enregistrer les données utilisateur" 148 | 149 | #: src/Views/Partials/Window/HeaderBar.vala:28 150 | msgid "Back" 151 | msgstr "Retour" 152 | 153 | #: src/Views/SettingsView.vala:34 154 | msgid "Sets your personal developer data" 155 | msgstr "Définit vos données personnelles de développeur" 156 | 157 | #: src/Views/WelcomeView.vala:33 158 | msgid "Develop for elementary" 159 | msgstr "Développez pour elementary" 160 | 161 | #: src/Views/WelcomeView.vala:34 162 | msgid "Choose what you wish to develop" 163 | msgstr "Choisissez ce que vous souhaitez développer" 164 | 165 | #: src/Views/WelcomeView.vala:39 166 | msgid "App" 167 | msgstr "Application" 168 | 169 | #: src/Views/WelcomeView.vala:39 170 | msgid "Create a new elementary OS application." 171 | msgstr "Créer une nouvelle application pour elementary OS." 172 | 173 | #: src/Views/WelcomeView.vala:40 174 | msgid "Switchboard plug" 175 | msgstr "Plug Switchboard" 176 | 177 | #: src/Views/WelcomeView.vala:40 178 | msgid "Create a new elementary OS switchboard plug." 179 | msgstr "Créer un nouveau plug Switchboard pour elementary OS." 180 | 181 | #: src/Views/WelcomeView.vala:41 182 | msgid "Wingpanel indicator" 183 | msgstr "Indicateur Wingpanel" 184 | 185 | #: src/Views/WelcomeView.vala:41 186 | msgid "Create a new elementary OS wingpanel indicator." 187 | msgstr "Créer un nouvel indicateur Wingppanel pour elementary OS." 188 | 189 | #: src/Widgets/ActionBar.vala:32 190 | msgid "Create" 191 | msgstr "Créer" 192 | 193 | #: src/Widgets/ActionBar.vala:33 194 | msgid "Undo" 195 | msgstr "Annuler" 196 | 197 | #: src/Widgets/EntryWithLabel.vala:61 198 | msgid "Optional" 199 | msgstr "Facultatif" 200 | -------------------------------------------------------------------------------- /po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext(meson.project_name(), 2 | args: [ 3 | '--directory=' + meson.source_root(), 4 | '--from-code=UTF-8' 5 | ], 6 | preset: 'glib' 7 | ) 8 | 9 | subdir('extra') 10 | -------------------------------------------------------------------------------- /po/nl.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.alcadica.develop package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.alcadica.develop\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-01-08 21:03+0400\n" 11 | "PO-Revision-Date: 2020-08-18 14:13+0200\n" 12 | "Last-Translator: Heimen Stoffels \n" 13 | "Language-Team: \n" 14 | "Language: nl\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Poedit 2.4.1\n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | 21 | #: src/Application.vala:25 22 | msgid "Develop" 23 | msgstr "Develop" 24 | 25 | #: src/Application.vala:73 26 | msgid "Preferences" 27 | msgstr "Voorkeuren" 28 | 29 | #: src/Views/Partials/Forms/FormNewApp.vala:34 30 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:48 31 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:35 32 | msgid "Choose project folder" 33 | msgstr "Kies de projectmap" 34 | 35 | #: src/Views/Partials/Forms/FormNewApp.vala:38 36 | msgid "Create a new elementary App" 37 | msgstr "Maak een nieuwe elementary-toepassing" 38 | 39 | #: src/Views/Partials/Forms/FormNewApp.vala:39 40 | msgid "App name" 41 | msgstr "Appnaam" 42 | 43 | #: src/Views/Partials/Forms/FormNewApp.vala:40 44 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:56 45 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:42 46 | msgid "RDNN name" 47 | msgstr "RDNN-naam" 48 | 49 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:52 50 | msgid "Switchboard category" 51 | msgstr "Switchboard-categorie" 52 | 53 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:53 54 | msgid "Create a new Switchboard Plug" 55 | msgstr "Maak een nieuwe Switchboard-plug" 56 | 57 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:54 58 | msgid "Plug name" 59 | msgstr "Plugnaam" 60 | 61 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:55 62 | msgid "Plug description" 63 | msgstr "Plugomschrijving" 64 | 65 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:61 66 | msgid "Personal" 67 | msgstr "Persoonlijk" 68 | 69 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:62 70 | msgid "Hardware" 71 | msgstr "Hardware" 72 | 73 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:63 74 | msgid "Network" 75 | msgstr "Netwerk" 76 | 77 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:64 78 | msgid "System" 79 | msgstr "Systeem" 80 | 81 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:65 82 | msgid "Other" 83 | msgstr "Overig" 84 | 85 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:39 86 | msgid "Create a new Wingpanel Indicator" 87 | msgstr "Maak een nieuwe Wingpanel-indicator" 88 | 89 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:40 90 | msgid "Indicator description" 91 | msgstr "Indicatoromschrijving" 92 | 93 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:41 94 | msgid "Indicator name" 95 | msgstr "Indicatornaam" 96 | 97 | #: src/Views/Partials/Forms/FormUserData.vala:34 98 | msgid "Name:" 99 | msgstr "Naam:" 100 | 101 | #: src/Views/Partials/Forms/FormUserData.vala:34 102 | msgid "John Doe" 103 | msgstr "Jan Jansen" 104 | 105 | #: src/Views/Partials/Forms/FormUserData.vala:35 106 | msgid "Email:" 107 | msgstr "E-mailadres:" 108 | 109 | #: src/Views/Partials/Forms/FormUserData.vala:35 110 | msgid "myemail@gmail.com" 111 | msgstr "mijnemailadres@gmail.com" 112 | 113 | #: src/Views/Partials/Forms/FormUserData.vala:36 114 | msgid "Personal github address:" 115 | msgstr "Persoonlijk GitHub-adres:" 116 | 117 | #: src/Views/Partials/Forms/FormUserData.vala:36 118 | msgid "https://github.com/yourname" 119 | msgstr "https://github.com/mijnnaam" 120 | 121 | #: src/Views/Partials/Forms/FormUserData.vala:37 122 | msgid "Personal website:" 123 | msgstr "Persoonlijke website:" 124 | 125 | #: src/Views/Partials/Forms/FormUserData.vala:37 126 | msgid "https://www.mywebsite.com" 127 | msgstr "https://www.mijnwebsite.nl" 128 | 129 | #: src/Views/Partials/Settings/UserDataSettings.vala:27 130 | #: src/Views/SettingsView.vala:34 131 | msgid "User settings" 132 | msgstr "Gebruikersinstellingen" 133 | 134 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:32 135 | msgid "First run setup" 136 | msgstr "Instelhulp" 137 | 138 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:33 139 | msgid "Before proceeding I'd love to know more about you" 140 | msgstr "Voordat je doorgaat, wil ik wat meer over je te weten komen" 141 | 142 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:34 143 | msgid "Your data will not be stored in a server" 144 | msgstr "Je gegevens worden niet opgeslagen op een server" 145 | 146 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:54 147 | msgid "Save user data" 148 | msgstr "Gebruikersgegevens opslaan" 149 | 150 | #: src/Views/Partials/Window/HeaderBar.vala:28 151 | msgid "Back" 152 | msgstr "Terug" 153 | 154 | #: src/Views/SettingsView.vala:34 155 | msgid "Sets your personal developer data" 156 | msgstr "Stel je persoonlijke ontwikkelaarsgegevens in" 157 | 158 | #: src/Views/WelcomeView.vala:33 159 | msgid "Develop for elementary" 160 | msgstr "Ontwikkelen voor elementary" 161 | 162 | #: src/Views/WelcomeView.vala:34 163 | msgid "Choose what you wish to develop" 164 | msgstr "Geef aan wat je wilt ontwikkelen" 165 | 166 | #: src/Views/WelcomeView.vala:39 167 | msgid "App" 168 | msgstr "Toepassing" 169 | 170 | #: src/Views/WelcomeView.vala:39 171 | msgid "Create a new elementary OS application." 172 | msgstr "Maak een nieuwe elementary-toepassing." 173 | 174 | #: src/Views/WelcomeView.vala:40 175 | msgid "Switchboard plug" 176 | msgstr "Switchboard-plug" 177 | 178 | #: src/Views/WelcomeView.vala:40 179 | msgid "Create a new elementary OS switchboard plug." 180 | msgstr "Maak een nieuwe Switchboard-plug." 181 | 182 | #: src/Views/WelcomeView.vala:41 183 | msgid "Wingpanel indicator" 184 | msgstr "Wingpanel-indicator" 185 | 186 | #: src/Views/WelcomeView.vala:41 187 | msgid "Create a new elementary OS wingpanel indicator." 188 | msgstr "Maak een nieuwe Wingpanel-indicator." 189 | 190 | #: src/Widgets/ActionBar.vala:32 191 | msgid "Create" 192 | msgstr "Maken" 193 | 194 | #: src/Widgets/ActionBar.vala:33 195 | msgid "Undo" 196 | msgstr "Ongedaan maken" 197 | 198 | #: src/Widgets/EntryWithLabel.vala:61 199 | msgid "Optional" 200 | msgstr "Optioneel" 201 | -------------------------------------------------------------------------------- /po/pt.po: -------------------------------------------------------------------------------- 1 | # French translations for the com.github.alcadica.develop package. 2 | # Copyright (C) 2019 THE com.github.alcadica.develop'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.alcadica.develop package. 4 | # aimproxt, 2019. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: com.github.alcadica.develop\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2021-01-08 21:03+0400\n" 12 | "PO-Revision-Date: 2019-03-19 18:28+0100\n" 13 | "Last-Translator: aimproxy\n" 14 | "Language-Team: Português\n" 15 | "Language: pt\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: src/Application.vala:25 21 | msgid "Develop" 22 | msgstr "Develop" 23 | 24 | #: src/Application.vala:73 25 | msgid "Preferences" 26 | msgstr "Preferências" 27 | 28 | #: src/Views/Partials/Forms/FormNewApp.vala:34 29 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:48 30 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:35 31 | msgid "Choose project folder" 32 | msgstr "Escolha a pasta do projeto" 33 | 34 | #: src/Views/Partials/Forms/FormNewApp.vala:38 35 | msgid "Create a new elementary App" 36 | msgstr "Crie uma nova Aplicação para o elementaryOS" 37 | 38 | #: src/Views/Partials/Forms/FormNewApp.vala:39 39 | msgid "App name" 40 | msgstr "Nome do Aplicação" 41 | 42 | #: src/Views/Partials/Forms/FormNewApp.vala:40 43 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:56 44 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:42 45 | msgid "RDNN name" 46 | msgstr "Nome RDNN" 47 | 48 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:52 49 | msgid "Switchboard category" 50 | msgstr "Categoria Switchboard" 51 | 52 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:53 53 | msgid "Create a new Switchboard Plug" 54 | msgstr "Criar um novo plug-in de painel de controlo" 55 | 56 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:54 57 | msgid "Plug name" 58 | msgstr "Nome do plug-in" 59 | 60 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:55 61 | msgid "Plug description" 62 | msgstr "Descrição do plug-in" 63 | 64 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:61 65 | msgid "Personal" 66 | msgstr "Pessoal" 67 | 68 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:62 69 | msgid "Hardware" 70 | msgstr "Hardware" 71 | 72 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:63 73 | msgid "Network" 74 | msgstr "Rede" 75 | 76 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:64 77 | msgid "System" 78 | msgstr "Sistema" 79 | 80 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:65 81 | msgid "Other" 82 | msgstr "Outros" 83 | 84 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:39 85 | msgid "Create a new Wingpanel Indicator" 86 | msgstr "Criar um novo indicador Wingpanel" 87 | 88 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:40 89 | msgid "Indicator description" 90 | msgstr "Descrição do Indicador" 91 | 92 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:41 93 | msgid "Indicator name" 94 | msgstr "Nome do Indicador" 95 | 96 | #: src/Views/Partials/Forms/FormUserData.vala:34 97 | msgid "Name:" 98 | msgstr "Nome:" 99 | 100 | #: src/Views/Partials/Forms/FormUserData.vala:34 101 | msgid "John Doe" 102 | msgstr "John Doe" 103 | 104 | #: src/Views/Partials/Forms/FormUserData.vala:35 105 | msgid "Email:" 106 | msgstr "E-mail:" 107 | 108 | #: src/Views/Partials/Forms/FormUserData.vala:35 109 | msgid "myemail@gmail.com" 110 | msgstr "meuemaill@gmail.com" 111 | 112 | #: src/Views/Partials/Forms/FormUserData.vala:36 113 | msgid "Personal github address:" 114 | msgstr "Endereço Pessoal do Github:" 115 | 116 | #: src/Views/Partials/Forms/FormUserData.vala:36 117 | msgid "https://github.com/yourname" 118 | msgstr "https://github.com/seunome" 119 | 120 | #: src/Views/Partials/Forms/FormUserData.vala:37 121 | msgid "Personal website:" 122 | msgstr "Site pessoal:" 123 | 124 | #: src/Views/Partials/Forms/FormUserData.vala:37 125 | msgid "https://www.mywebsite.com" 126 | msgstr "https://www.meusite.com" 127 | 128 | #: src/Views/Partials/Settings/UserDataSettings.vala:27 129 | #: src/Views/SettingsView.vala:34 130 | msgid "User settings" 131 | msgstr "Configurações do utilizador" 132 | 133 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:32 134 | msgid "First run setup" 135 | msgstr "Primeira configuração" 136 | 137 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:33 138 | msgid "Before proceeding I'd love to know more about you" 139 | msgstr "Antes de prosseguir eu adoraria saber mais sobre você" 140 | 141 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:34 142 | msgid "Your data will not be stored in a server" 143 | msgstr "Seus dados não serão armazenados em um servidor" 144 | 145 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:54 146 | msgid "Save user data" 147 | msgstr "Salvar dados do utilizador" 148 | 149 | #: src/Views/Partials/Window/HeaderBar.vala:28 150 | msgid "Back" 151 | msgstr "Retroceder" 152 | 153 | #: src/Views/SettingsView.vala:34 154 | msgid "Sets your personal developer data" 155 | msgstr "Define seus dados pessoais de desenvolvedor" 156 | 157 | #: src/Views/WelcomeView.vala:33 158 | msgid "Develop for elementary" 159 | msgstr "Desenvolver para elementary" 160 | 161 | #: src/Views/WelcomeView.vala:34 162 | msgid "Choose what you wish to develop" 163 | msgstr "Escolha o que você deseja desenvolver" 164 | 165 | #: src/Views/WelcomeView.vala:39 166 | msgid "App" 167 | msgstr "Aplicação" 168 | 169 | #: src/Views/WelcomeView.vala:39 170 | msgid "Create a new elementary OS application." 171 | msgstr "Criar um novo aplicativo elementaryOS" 172 | 173 | #: src/Views/WelcomeView.vala:40 174 | msgid "Switchboard plug" 175 | msgstr "Plug-in Switchboard" 176 | 177 | #: src/Views/WelcomeView.vala:40 178 | msgid "Create a new elementary OS switchboard plug." 179 | msgstr "Criar um novo plug-in Switchboard para o elementaryOS." 180 | 181 | #: src/Views/WelcomeView.vala:41 182 | msgid "Wingpanel indicator" 183 | msgstr "Indicador Wingpanel" 184 | 185 | #: src/Views/WelcomeView.vala:41 186 | msgid "Create a new elementary OS wingpanel indicator." 187 | msgstr "Criar um novo indicador Wingppanel para o elementaryOS." 188 | 189 | #: src/Widgets/ActionBar.vala:32 190 | msgid "Create" 191 | msgstr "Criar" 192 | 193 | #: src/Widgets/ActionBar.vala:33 194 | msgid "Undo" 195 | msgstr "Anular" 196 | 197 | #: src/Widgets/EntryWithLabel.vala:61 198 | msgid "Optional" 199 | msgstr "Opcional" 200 | -------------------------------------------------------------------------------- /po/ru.po: -------------------------------------------------------------------------------- 1 | # Russian translations for com.github.alcadica.develop package. 2 | # Copyright (C) 2021 THE com.github.alcadica.develop'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the com.github.alcadica.develop package. 4 | # Automatically generated, 2021. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: com.github.alcadica.develop\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2021-01-08 21:03+0400\n" 11 | "PO-Revision-Date: 2021-01-08 22:03+0400\n" 12 | "Last-Translator: Andrey Kultyapov \n" 13 | "Language-Team: none\n" 14 | "Language: ru\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" 19 | "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" 20 | "X-Generator: Poedit 2.2.3\n" 21 | 22 | #: src/Application.vala:25 23 | msgid "Develop" 24 | msgstr "Develop" 25 | 26 | #: src/Application.vala:73 27 | msgid "Preferences" 28 | msgstr "Настройки" 29 | 30 | #: src/Views/Partials/Forms/FormNewApp.vala:34 31 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:48 32 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:35 33 | msgid "Choose project folder" 34 | msgstr "Выберите папку проекта" 35 | 36 | #: src/Views/Partials/Forms/FormNewApp.vala:38 37 | msgid "Create a new elementary App" 38 | msgstr "Создать новое приложение" 39 | 40 | #: src/Views/Partials/Forms/FormNewApp.vala:39 41 | msgid "App name" 42 | msgstr "Название приложения" 43 | 44 | #: src/Views/Partials/Forms/FormNewApp.vala:40 45 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:56 46 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:42 47 | msgid "RDNN name" 48 | msgstr "RDNN имя" 49 | 50 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:52 51 | msgid "Switchboard category" 52 | msgstr "Категория параметров системы" 53 | 54 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:53 55 | msgid "Create a new Switchboard Plug" 56 | msgstr "Создать новый плагин для параметров системы" 57 | 58 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:54 59 | msgid "Plug name" 60 | msgstr "Название плагина" 61 | 62 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:55 63 | msgid "Plug description" 64 | msgstr "Описание" 65 | 66 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:61 67 | msgid "Personal" 68 | msgstr "" 69 | 70 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:62 71 | msgid "Hardware" 72 | msgstr "" 73 | 74 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:63 75 | msgid "Network" 76 | msgstr "" 77 | 78 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:64 79 | msgid "System" 80 | msgstr "" 81 | 82 | #: src/Views/Partials/Forms/FormNewSwitchboardWidget.vala:65 83 | msgid "Other" 84 | msgstr "" 85 | 86 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:39 87 | msgid "Create a new Wingpanel Indicator" 88 | msgstr "Создать новый индикатор Wingpanel" 89 | 90 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:40 91 | msgid "Indicator description" 92 | msgstr "Описание" 93 | 94 | #: src/Views/Partials/Forms/FormNewWingpanelWidget.vala:41 95 | msgid "Indicator name" 96 | msgstr "Названия индикатора" 97 | 98 | #: src/Views/Partials/Forms/FormUserData.vala:34 99 | msgid "Name:" 100 | msgstr "Имя:" 101 | 102 | #: src/Views/Partials/Forms/FormUserData.vala:34 103 | msgid "John Doe" 104 | msgstr "John Doe" 105 | 106 | #: src/Views/Partials/Forms/FormUserData.vala:35 107 | msgid "Email:" 108 | msgstr "Электронная почта:" 109 | 110 | #: src/Views/Partials/Forms/FormUserData.vala:35 111 | msgid "myemail@gmail.com" 112 | msgstr "myemail@gmail.com" 113 | 114 | #: src/Views/Partials/Forms/FormUserData.vala:36 115 | msgid "Personal github address:" 116 | msgstr "Личный адрес на github:" 117 | 118 | #: src/Views/Partials/Forms/FormUserData.vala:36 119 | msgid "https://github.com/yourname" 120 | msgstr "https://github.com/yourname" 121 | 122 | #: src/Views/Partials/Forms/FormUserData.vala:37 123 | msgid "Personal website:" 124 | msgstr "Персональный сайт:" 125 | 126 | #: src/Views/Partials/Forms/FormUserData.vala:37 127 | msgid "https://www.mywebsite.com" 128 | msgstr "https://www.mywebsite.com" 129 | 130 | #: src/Views/Partials/Settings/UserDataSettings.vala:27 131 | #: src/Views/SettingsView.vala:34 132 | msgid "User settings" 133 | msgstr "Личные данные" 134 | 135 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:32 136 | msgid "First run setup" 137 | msgstr "Первый запуск" 138 | 139 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:33 140 | msgid "Before proceeding I'd love to know more about you" 141 | msgstr "Прежде чем продолжить необходимо узнать о вас побольше" 142 | 143 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:34 144 | msgid "Your data will not be stored in a server" 145 | msgstr "Ваши данные будут храниться только на этом компьютере" 146 | 147 | #: src/Views/Partials/Settings/UserDataSettingsFirstRun.vala:54 148 | msgid "Save user data" 149 | msgstr "Сохранить личные данные" 150 | 151 | #: src/Views/Partials/Window/HeaderBar.vala:28 152 | msgid "Back" 153 | msgstr "Назад" 154 | 155 | #: src/Views/SettingsView.vala:34 156 | msgid "Sets your personal developer data" 157 | msgstr "Устанавливает ваши личные данные разработчика" 158 | 159 | #: src/Views/WelcomeView.vala:33 160 | msgid "Develop for elementary" 161 | msgstr "Develop для elementary OS" 162 | 163 | #: src/Views/WelcomeView.vala:34 164 | msgid "Choose what you wish to develop" 165 | msgstr "Выберите, что вы хотите создать" 166 | 167 | #: src/Views/WelcomeView.vala:39 168 | msgid "App" 169 | msgstr "Приложение" 170 | 171 | #: src/Views/WelcomeView.vala:39 172 | msgid "Create a new elementary OS application." 173 | msgstr "Создание нового приложения для elementary OS." 174 | 175 | #: src/Views/WelcomeView.vala:40 176 | msgid "Switchboard plug" 177 | msgstr "Плагин для параметров системы" 178 | 179 | #: src/Views/WelcomeView.vala:40 180 | msgid "Create a new elementary OS switchboard plug." 181 | msgstr "Создание нового плагина для параметров системы elementary OS." 182 | 183 | #: src/Views/WelcomeView.vala:41 184 | msgid "Wingpanel indicator" 185 | msgstr "Индикатор Wingpanel" 186 | 187 | #: src/Views/WelcomeView.vala:41 188 | msgid "Create a new elementary OS wingpanel indicator." 189 | msgstr "Создание нового индикатора Wingpanel." 190 | 191 | #: src/Widgets/ActionBar.vala:32 192 | msgid "Create" 193 | msgstr "Создать" 194 | 195 | #: src/Widgets/ActionBar.vala:33 196 | msgid "Undo" 197 | msgstr "Отменить" 198 | 199 | #: src/Widgets/EntryWithLabel.vala:61 200 | msgid "Optional" 201 | msgstr "Необязательный" 202 | -------------------------------------------------------------------------------- /src/Actions/ProjectEditing/Actions.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | namespace Alcadica.Actions.ProjectEditing { 22 | public const string TEMPLATE_DID_COPY = "Alcadica.Actions.ProjectEditing.TEMPLATE_DID_COPY"; 23 | public const string TEMPLATE_DIDNOT_COPY = "Alcadica.Actions.ProjectEditing.TEMPLATE_DIDNOT_COPY"; 24 | } 25 | -------------------------------------------------------------------------------- /src/Actions/Window/Actions.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | namespace Alcadica.Actions.Window { 22 | public const string FIRST_RUN = "Alcadica.Actions.Window.FIRST_RUN"; 23 | public const string FIRST_RUN_END = "Alcadica.Actions.Window.FIRST_RUN_END"; 24 | public const string QUIT = "Alcadica.Actions.Window.QUIT"; 25 | public const string SETTINGS_CLOSE = "Alcadica.Actions.Window.SETTINGS_CLOSE"; 26 | public const string SETTINGS_OPEN = "Alcadica.Actions.Window.SETTINGS_OPEN"; 27 | public const string START = "Alcadica.Actions.Window.START"; 28 | public const string SHOW_WELCOME_VIEW = "Alcadica.Actions.Window.SHOW_WELCOME_VIEW"; 29 | } 30 | -------------------------------------------------------------------------------- /src/Application.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | 22 | namespace Alcadica { 23 | 24 | public const string APP_ID = "com.github.alcadica.develop"; 25 | public const string APP_NAME = (_("Develop")); 26 | 27 | public class Develop : Gtk.Application { 28 | public static Develop _instance = null; 29 | public static Develop instance { 30 | get { 31 | if (_instance == null) { 32 | _instance = new Develop (); 33 | } 34 | return _instance; 35 | } 36 | } 37 | 38 | public Develop () { 39 | Object ( 40 | application_id: APP_ID 41 | ); 42 | Intl.setlocale (LocaleCategory.ALL, ""); 43 | } 44 | 45 | construct { 46 | flags |= ApplicationFlags.HANDLES_OPEN; 47 | } 48 | 49 | protected override void activate () { 50 | var window = new Gtk.ApplicationWindow (this); 51 | var main = new Alcadica.Views.MainView (); 52 | var manager = Services.ActionManager.instance; 53 | var settings = new Services.UserSettings (); 54 | 55 | Services.FileSystem.window = window; 56 | 57 | window.set_titlebar (new Views.Partials.Window.HeaderBar ()); 58 | 59 | window.title = APP_NAME; 60 | window.add (main); 61 | window.show_all (); 62 | window.set_default_size (950, 550); 63 | 64 | manager.get_action (Actions.Window.FIRST_RUN_END).activate.connect (() => { 65 | settings.is_first_run = false; 66 | }); 67 | 68 | manager.get_action (Actions.Window.SETTINGS_CLOSE).activate.connect (() => { 69 | window.title = APP_NAME; 70 | }); 71 | 72 | manager.get_action (Actions.Window.SETTINGS_OPEN).activate.connect (() => { 73 | window.title = APP_NAME + (" - " + (_("Preferences"))); 74 | }); 75 | 76 | manager.get_action (Actions.Window.QUIT).activate.connect (() => { 77 | window.destroy (); 78 | }); 79 | 80 | manager.dispatch (Actions.Window.START); 81 | 82 | if (settings.is_first_run) { 83 | info ("first run, showing settings"); 84 | manager.dispatch (Actions.Window.FIRST_RUN); 85 | } 86 | } 87 | 88 | protected override void open (File[] files, string hint) { 89 | activate (); 90 | } 91 | 92 | public static int main (string[] args) { 93 | var app = Develop.instance; 94 | return app.run (args); 95 | } 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /src/CommonRegEx.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | 22 | namespace Alcadica.CommonRegEx { 23 | public const string PROJECT_NAME = "^[a-z\\-A-Z]+[a-z\\-A-Z0-9]+$"; 24 | public const string USER_NAME = "^([a-zA-Z]+[0-9\\s]{0,})+[^\\s]$"; 25 | public const string USER_EMAIL = "^(([\\w-]+\\.)+[\\w-]+|([a-zA-Z]{1}|[\\w-]{2,}))@((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]? [0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]? [0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|([a-zA-Z0-9]+[\\w-]+\\.)+[a-zA-Z]{1}[a-zA-Z0-9-]{1,23})$"; 26 | public const string URL = "^https?://(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)$"; 27 | } 28 | -------------------------------------------------------------------------------- /src/Entities/Generic/KeyValuePair.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | namespace Alcadica.Entities.Generic { 22 | public class KeyValuePair : Object { 23 | public TKey key { get; set; } 24 | public TValue value { get; set; } 25 | 26 | public KeyValuePair (TKey key, TValue value) { 27 | this.key = key; 28 | this.value = value; 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/Entities/Template/TemplateFile.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | namespace Alcadica.Entities.Template { 22 | public class TemplateFile : Object { 23 | public string content { get; set; } 24 | public string path { get; set; } 25 | public TemplateFileType file_type { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/Entities/Template/TemplateFileType.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | namespace Alcadica.Entities.Template { 22 | public enum TemplateFileType { 23 | DIRECTORY, 24 | FILE 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/Entities/Template/TemplateToken.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | namespace Alcadica.Entities.Template { 22 | public class TemplateToken : Object { 23 | public static string delimiter_start = "{{"; 24 | public static string delimiter_end = "}}"; 25 | 26 | public string token { get; set; } 27 | public string token_value { get; set; } 28 | 29 | public TemplateToken (string name, string token_value) { 30 | this.token = TemplateToken.delimiter_start + name + TemplateToken.delimiter_end; 31 | this.token_value = token_value; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/Services/ActionManager.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | namespace Alcadica.Services { 22 | public class ActionManager : Object { 23 | private static ActionManager _instance = null; 24 | 25 | public static ActionManager instance { 26 | get { 27 | if (_instance == null) { 28 | _instance = new ActionManager (); 29 | } 30 | return _instance; 31 | } 32 | } 33 | 34 | public SimpleActionGroup action_group { get; construct; } 35 | 36 | private ActionManager () { 37 | Object ( 38 | action_group: new SimpleActionGroup () 39 | ); 40 | } 41 | 42 | public void add (string name) { 43 | SimpleAction action = new SimpleAction (name, null); 44 | this.action_group.add_action (action); 45 | } 46 | 47 | public SimpleAction get_action (string name) { 48 | if (!this.action_group.has_action (name)) { 49 | this.add (name); 50 | } 51 | 52 | return this.action_group.lookup_action (name) as SimpleAction; 53 | } 54 | 55 | public void dispatch (string name) { 56 | this.action_group.activate_action (name, null); 57 | } 58 | 59 | public void remove (string name) { 60 | this.action_group.remove_action (name); 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/Services/FileSystem.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Gtk; 22 | 23 | namespace Alcadica.Services { 24 | public class FileSystem : GLib.Object { 25 | 26 | public static ApplicationWindow window { get; set; } 27 | 28 | public static bool claim (string filepath) { 29 | File file = File.new_for_path (filepath); 30 | 31 | try { 32 | file.create (FileCreateFlags.NONE, null); 33 | return true; 34 | } catch (Error _error) { 35 | return false; 36 | } 37 | } 38 | 39 | public static string choose_directory (string title) { 40 | return FileSystem.choose_directories (title).nth_data (0); 41 | } 42 | 43 | public static List choose_directories (string title) { 44 | List list = new List (); 45 | 46 | Gtk.FileChooserDialog chooser = new Gtk.FileChooserDialog ( 47 | title, 48 | FileSystem.window, 49 | FileChooserAction.SELECT_FOLDER, 50 | "_Cancel", 51 | Gtk.ResponseType.CANCEL, 52 | "_Open", 53 | Gtk.ResponseType.ACCEPT 54 | ); 55 | 56 | Gtk.FileFilter filter = new Gtk.FileFilter (); 57 | 58 | filter.add_mime_type ("inode/directory"); 59 | 60 | chooser.set_filter (filter); 61 | 62 | if (chooser.run () == Gtk.ResponseType.ACCEPT) { 63 | SList names = chooser.get_filenames (); 64 | 65 | foreach (unowned string name in names) { 66 | list.append (name); 67 | } 68 | } 69 | 70 | chooser.close (); 71 | 72 | return list; 73 | } 74 | 75 | public static bool dir_exists (string path) { 76 | var file = File.new_for_path (path); 77 | 78 | if (file.query_exists ()) { 79 | return file.query_file_type (FileQueryInfoFlags.NOFOLLOW_SYMLINKS, null) == FileType.DIRECTORY; 80 | } 81 | 82 | return false; 83 | } 84 | 85 | public static bool file_exists (string path) { 86 | var file = File.new_for_path (path); 87 | 88 | if (file.query_exists ()) { 89 | switch (file.query_file_type (0)) { 90 | case FileType.MOUNTABLE: 91 | case FileType.REGULAR: 92 | case FileType.SHORTCUT: 93 | case FileType.SPECIAL: 94 | case FileType.SYMBOLIC_LINK: 95 | case FileType.UNKNOWN: 96 | return true; 97 | default: 98 | return false; 99 | } 100 | } 101 | 102 | return false; 103 | } 104 | 105 | public static bool mkdir (string path) { 106 | if (dir_exists (path)) { 107 | return false; 108 | } 109 | try { 110 | File.new_for_path (path).make_directory_with_parents (); 111 | return dir_exists (path); 112 | } catch (Error error) { 113 | warning ("mkdir: " + error.message + "\n path=" + path); 114 | return false; 115 | } 116 | } 117 | 118 | public static string read (string path) { 119 | File file = File.new_for_path (path); 120 | 121 | try { 122 | FileInputStream @is = file.read (); 123 | DataInputStream dis = new DataInputStream (@is); 124 | string content = ""; 125 | string line; 126 | 127 | while ((line = dis.read_line ()) != null) { 128 | content += line + "\n"; 129 | } 130 | 131 | return content; 132 | } catch (Error error) { 133 | warning ("Cannot read file " + path + " because of " + error.message); 134 | return ""; 135 | } 136 | } 137 | 138 | public static bool rename (File file, string filename, FileCopyFlags flags = FileCopyFlags.NONE) { 139 | string? path = file.get_path (); 140 | 141 | if (path == null || path == "") { 142 | return false; 143 | } 144 | 145 | File newfile = File.new_for_path (path.replace (file.get_basename (), filename)); 146 | 147 | try { 148 | return file.move (newfile, flags); 149 | } catch (Error error) { 150 | warning ("[File: " + path + "] " + error.message); 151 | return false; 152 | } 153 | } 154 | 155 | public static bool write_file (string path, string content) { 156 | if (file_exists (path)) { 157 | return false; 158 | } 159 | 160 | try { 161 | File file = File.new_for_path (path); 162 | var dos = new DataOutputStream (file.create (FileCreateFlags.REPLACE_DESTINATION)); 163 | 164 | uint8[] data = content.data; 165 | long written = 0; 166 | while (written < data.length) { 167 | written += dos.write (data[written:data.length]); 168 | } 169 | return true; 170 | } catch (Error error) { 171 | warning ("write_file: " + error.message + "\n path=" + path + "\n content=" + content); 172 | return false; 173 | } 174 | } 175 | } 176 | } 177 | -------------------------------------------------------------------------------- /src/Services/RDNN.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Gtk; 22 | 23 | namespace Alcadica.Services { 24 | public class RDNN : GLib.Object { 25 | protected string[] chunks { get; set; } 26 | protected string domain { get; set; } 27 | 28 | public RDNN (string domain) { 29 | string _domain = domain 30 | .replace ("http://", "") 31 | .replace ("https://", "") 32 | .replace ("www.", "") 33 | ; 34 | 35 | _domain = _domain.strip (); 36 | 37 | string[] _domain_chunks = _domain.split ("/"); 38 | string[] _chunks_sorted = {}; 39 | 40 | string first_part = _domain_chunks [0]; 41 | string second_part = _domain_chunks [1]; 42 | string[] first_part_chunks = first_part.split ("."); 43 | string[] second_part_chunks = second_part.split ("/"); 44 | 45 | for (int i = first_part_chunks.length; i > 0; i--) { 46 | _chunks_sorted += first_part_chunks[i - 1]; 47 | } 48 | 49 | for (int i = 0; i < second_part_chunks.length; i++) { 50 | _chunks_sorted += second_part_chunks[i]; 51 | } 52 | 53 | this.domain = domain; 54 | this.chunks = _chunks_sorted; 55 | } 56 | 57 | public static bool is_valid_name (string name) { 58 | try { 59 | Regex checker = new Regex ("^[A-Za-z]{2,6}((?!-)\\.[A-Za-z0-9-]{1,63}(? 20 | */ 21 | using Alcadica.Entities.Template; 22 | using Alcadica.Services; 23 | using Granite.Services; 24 | 25 | namespace Alcadica.Services { 26 | public abstract class TemplateService : Object { 27 | public unowned List directories { get; set; } 28 | public unowned List files { get; set; } 29 | public unowned List tokens { get; set; } 30 | public string base_dir { get; set; } 31 | public string root_dir_name { get; set; } 32 | public string template_name { get; set; } 33 | 34 | protected abstract void on_init (); 35 | protected abstract void on_directory_write_end (TemplateFile file); 36 | protected abstract void on_file_write_end (TemplateFile file); 37 | public signal void on_creation_end (bool without_errors); 38 | 39 | protected TemplateService (string template_name, string base_dir) { 40 | this.directories = new List (); 41 | this.files = new List (); 42 | this.base_dir = base_dir; 43 | this.template_name = template_name; 44 | } 45 | 46 | protected string get_shared_template_dir () { 47 | return Path.build_filename ("/", "usr", "share", APP_ID, "templates", this.template_name); 48 | } 49 | 50 | protected bool create_directories () { 51 | int count = 0; 52 | 53 | this.directories.foreach (directory => { 54 | debug ("Creating directory " + directory.path); 55 | 56 | if (FileSystem.mkdir (directory.path)) { 57 | this.on_directory_write_end (directory); 58 | count += 1; 59 | } 60 | }); 61 | 62 | return count == this.directories.length (); 63 | } 64 | 65 | protected bool create_project_root () { 66 | return FileSystem.mkdir (this.root_dir_name); 67 | } 68 | 69 | protected bool create_files () { 70 | int count = 0; 71 | 72 | foreach (TemplateFile file in this.files) { 73 | string result = file.content; 74 | 75 | foreach (TemplateToken token in this.tokens) { 76 | result = result.replace (token.token, token.token_value); 77 | } 78 | 79 | debug ("Writing file to " + file.path); 80 | 81 | if (FileSystem.write_file (file.path, result)) { 82 | this.on_file_write_end (file); 83 | count += 1; 84 | } 85 | } 86 | 87 | return count == this.files.length (); 88 | } 89 | 90 | protected string get_content_from_shared_file (string filename) { 91 | return FileSystem.read (Path.build_filename (get_shared_template_dir (), filename)); 92 | } 93 | 94 | public uint add_file (string path, string content = "") { 95 | TemplateFile directory = new TemplateFile (); 96 | TemplateFile file = new TemplateFile (); 97 | 98 | directory.path = Path.build_filename (this.base_dir, Path.get_dirname (path)); 99 | file.file_type = TemplateFileType.DIRECTORY; 100 | 101 | file.content = content; 102 | file.path = Path.build_filename (this.base_dir, path); 103 | file.file_type = TemplateFileType.FILE; 104 | 105 | this.directories.append (directory); 106 | this.files.append (file); 107 | 108 | return this.files.length (); 109 | } 110 | 111 | public uint add_token (string token_name, string token_value) { 112 | this.tokens.append (new TemplateToken (token_name, token_value)); 113 | return this.tokens.length (); 114 | } 115 | 116 | public bool start () { 117 | this.on_init (); 118 | 119 | this.add_token ("yearrange", new DateTime.now (new TimeZone.local ()).get_year ().to_string () + " - Today"); 120 | 121 | if (this.create_project_root ()) { 122 | bool directories = this.create_directories (); 123 | bool files = this.create_files (); 124 | bool without_errors = directories && files; 125 | 126 | this.on_creation_end (without_errors); 127 | 128 | return without_errors; 129 | } else { 130 | this.on_creation_end (false); 131 | } 132 | 133 | return false; 134 | } 135 | } 136 | } 137 | -------------------------------------------------------------------------------- /src/Services/Templates/App.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Alcadica.Entities.Template; 22 | using Alcadica.Services; 23 | 24 | namespace Alcadica.Services.Templates { 25 | public class App : TemplateService { 26 | 27 | public unowned string appdata_xml = "appdata.xml.in"; 28 | public unowned string desktop_entry = "desktop.in"; 29 | 30 | public App (string base_dir) { 31 | Object (base_dir: base_dir, template_name: "app"); 32 | } 33 | 34 | protected override void on_init () { 35 | this.add_file ("data/icons/16/name.svg", get_content_from_shared_file ("data/icons/16/name.svg")); 36 | this.add_file ("data/icons/24/name.svg", get_content_from_shared_file ("data/icons/24/name.svg")); 37 | this.add_file ("data/icons/32/name.svg", get_content_from_shared_file ("data/icons/32/name.svg")); 38 | this.add_file ("data/icons/48/name.svg", get_content_from_shared_file ("data/icons/48/name.svg")); 39 | this.add_file ("data/icons/64/name.svg", get_content_from_shared_file ("data/icons/64/name.svg")); 40 | this.add_file ("data/icons/128/name.svg", get_content_from_shared_file ("data/icons/128/name.svg")); 41 | this.add_file ("data/icons/name.svg", get_content_from_shared_file ("data/icons/name.svg")); 42 | this.add_file ("data/" + this.appdata_xml, get_content_from_shared_file ("data/appdata.xml")); 43 | this.add_file ("data/" + this.desktop_entry, get_content_from_shared_file ("data/desktop")); 44 | this.add_file ("data/meson.build", get_content_from_shared_file ("data/meson.build")); 45 | 46 | this.add_file ("meson/post_install.py", get_content_from_shared_file ("meson/post_install.py")); 47 | 48 | this.add_file ("po/extra/LINGUAS", get_content_from_shared_file ("po/extra/LINGUAS")); 49 | this.add_file ("po/extra/meson.build", get_content_from_shared_file ("po/extra/meson.build")); 50 | this.add_file ("po/extra/POTFILES", get_content_from_shared_file ("po/extra/POTFILES")); 51 | this.add_file ("po/LINGUAS", get_content_from_shared_file ("po/LINGUAS")); 52 | this.add_file ("po/meson.build", get_content_from_shared_file ("po/meson.build")); 53 | this.add_file ("po/POTFILES", get_content_from_shared_file ("po/POTFILES")); 54 | 55 | this.add_file ("src/Application.vala", get_content_from_shared_file ("src/Application.vala")); 56 | this.add_file ("src/meson.build", get_content_from_shared_file ("src/meson.build")); 57 | 58 | this.add_file (".editorconfig", get_content_from_shared_file (".editorconfig")); 59 | this.add_file (".gitignore", get_content_from_shared_file (".gitignore")); 60 | this.add_file (".travis.yml", get_content_from_shared_file (".travis.yml")); 61 | this.add_file ("meson.build", get_content_from_shared_file ("meson.build")); 62 | this.add_file ("README.md", get_content_from_shared_file ("README.md")); 63 | } 64 | 65 | protected override void on_directory_write_end (TemplateFile directory) { } 66 | 67 | protected override void on_file_write_end (TemplateFile file) { 68 | File _file = File.new_for_path (file.path); 69 | string basename = _file.get_basename (); 70 | 71 | if (basename == this.appdata_xml) { 72 | string destination = this.root_dir_name + ".appdata.xml.in"; 73 | debug ("\nRenaming appdata file to: " + destination); 74 | FileSystem.rename (_file, destination); 75 | } else if (basename == this.desktop_entry) { 76 | string destination = this.root_dir_name + ".desktop.in"; 77 | debug ("\nRenaming desktop file to: " + destination); 78 | FileSystem.rename (_file, destination); 79 | } else if (basename == "name.svg") { 80 | string destination = this.root_dir_name + ".svg"; 81 | debug ("\nRenaming icon file to: " + destination); 82 | FileSystem.rename (_file, destination); 83 | } 84 | } 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /src/Services/Templates/SwitchboardWidget.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Alcadica.Entities.Template; 22 | using Alcadica.Services; 23 | 24 | namespace Alcadica.Services.Templates { 25 | public class SwitchboardWidget : TemplateService { 26 | 27 | protected string icon_path { 28 | get { 29 | return "data/icons/128/icon.svg"; 30 | } 31 | } 32 | 33 | public SwitchboardWidget (string base_dir) { 34 | Object (base_dir: base_dir, template_name: "switchboard-widget"); 35 | } 36 | 37 | protected override void on_init () { 38 | this.add_file (icon_path, get_content_from_shared_file (icon_path)); 39 | this.add_file (".gitignore", get_content_from_shared_file (".gitignore")); 40 | this.add_file (".travis.yml", get_content_from_shared_file (".travis.yml")); 41 | this.add_file ("CODE_OF_CONDUCT.md", get_content_from_shared_file ("CODE_OF_CONDUCT.md")); 42 | this.add_file ("COPYING", get_content_from_shared_file ("COPYING")); 43 | this.add_file ("meson.build", get_content_from_shared_file ("meson.build")); 44 | this.add_file ("po/LINGUAS", get_content_from_shared_file ("po/LINGUAS")); 45 | this.add_file ("po/meson.build", get_content_from_shared_file ("po/meson.build")); 46 | this.add_file ("README.md", get_content_from_shared_file ("README.md")); 47 | this.add_file ("src/Backend/Settings.vala", get_content_from_shared_file ("src/Backend/Settings.vala")); 48 | this.add_file ("src/meson.build", get_content_from_shared_file ("src/meson.build")); 49 | this.add_file ("src/Plug.vala", get_content_from_shared_file ("src/Plug.vala")); 50 | this.add_file ("src/Widgets/GeneralSection.vala", get_content_from_shared_file ("src/Widgets/GeneralSection.vala")); 51 | this.add_file ("src/Widgets/SettingLabel.vala", get_content_from_shared_file ("src/Widgets/SettingLabel.vala")); 52 | } 53 | 54 | protected override void on_directory_write_end (TemplateFile directory) { 55 | debug ("Created directory " + directory.path); 56 | } 57 | 58 | protected override void on_file_write_end (TemplateFile file) { 59 | File _file = File.new_for_path (file.path); 60 | string basename = _file.get_basename (); 61 | 62 | debug ("Created file " + file.path); 63 | 64 | if (basename == "icon.svg") { 65 | string destination = this.root_dir_name + ".svg"; 66 | debug ("\nRenaming icon file to: " + destination); 67 | FileSystem.rename (_file, destination); 68 | } 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/Services/Templates/WingpanelWidget.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Alcadica.Entities.Template; 22 | using Alcadica.Services; 23 | 24 | namespace Alcadica.Services.Templates { 25 | public class WingpanelWidget : TemplateService { 26 | 27 | public WingpanelWidget (string base_dir) { 28 | Object (base_dir: base_dir, template_name: "wingpanel-widget"); 29 | } 30 | 31 | protected override void on_init () { 32 | this.add_file ("po/LINGUAS", get_content_from_shared_file ("po/LINGUAS")); 33 | this.add_file ("po/meson.build", get_content_from_shared_file ("po/meson.build")); 34 | this.add_file ("src/Indicator.vala", get_content_from_shared_file ("src/Indicator.vala")); 35 | this.add_file (".editorconfig", get_content_from_shared_file (".editorconfig")); 36 | this.add_file (".travis.yml", get_content_from_shared_file (".travis.yml")); 37 | this.add_file ("COPYING", get_content_from_shared_file ("COPYING")); 38 | this.add_file ("meson.build", get_content_from_shared_file ("meson.build")); 39 | this.add_file ("README.md", get_content_from_shared_file ("README.md")); 40 | } 41 | 42 | protected override void on_directory_write_end (TemplateFile directory) { 43 | debug ("Created directory " + directory.path); 44 | } 45 | 46 | protected override void on_file_write_end (TemplateFile file) { 47 | debug ("Created file " + file.path); 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/Services/UserSettings.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | 22 | namespace Alcadica.Services { 23 | public class UserSettings : Granite.Services.Settings { 24 | public bool is_first_run { get; set; } 25 | public string user_email { get; set; } 26 | public string user_github_url { get; set; } 27 | public string user_name { get; set; } 28 | public string user_website_url { get; set; } 29 | 30 | public UserSettings () { 31 | base (APP_ID); 32 | } 33 | 34 | protected override void verify (string key) { 35 | switch (key) { 36 | case "user-email": 37 | if (this.user_email == "" || this.user_email == null) { 38 | this.user_email = ""; 39 | } 40 | break; 41 | case "user-github-url": 42 | if (this.user_github_url == "" || this.user_github_url == null) { 43 | this.user_github_url = "http://github.com/"; 44 | } 45 | break; 46 | case "user-name": 47 | if (this.user_name == "" || this.user_name == null) { 48 | this.user_name = Environment.get_user_name (); 49 | } 50 | break; 51 | case "user-website-url": 52 | if (this.user_website_url == "" || this.user_website_url == null) { 53 | this.user_website_url = ""; 54 | } 55 | break; 56 | } 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/Views/MainView.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Granite; 22 | using Gtk; 23 | 24 | namespace Alcadica.Views { 25 | public class MainView : Paned { 26 | construct { 27 | string view_first_run = "view_first_run"; 28 | string view_settings = "view_settings"; 29 | string view_welcome = "view_welcome"; 30 | string view_project_creation = "view_project_creation"; 31 | 32 | Partials.Settings.UserDataSettingsFirstRun first_run = new Partials.Settings.UserDataSettingsFirstRun (); 33 | ProjectEditingView project_editing = new ProjectEditingView (); 34 | Services.ActionManager manager = Services.ActionManager.instance; 35 | SettingsView settings = new SettingsView (); 36 | Stack stack = new Stack (); 37 | string? last_visible_child_name; 38 | WelcomeView welcome = new WelcomeView (); 39 | 40 | orientation = Orientation.HORIZONTAL; 41 | 42 | stack.add_named (welcome, view_welcome); 43 | stack.add_named (project_editing, view_project_creation); 44 | stack.add_named (settings, view_settings); 45 | stack.add_named (first_run, view_first_run); 46 | 47 | this.pack1 (stack, true, false); 48 | 49 | project_editing.on_undo.connect (() => { 50 | stack.set_visible_child_full (view_welcome, StackTransitionType.SLIDE_RIGHT); 51 | project_editing.reset (); 52 | }); 53 | 54 | project_editing.on_template_creation_end.connect ((path) => { 55 | File directory = File.new_for_path (path); 56 | try { 57 | AppInfo.launch_default_for_uri (directory.get_uri (), null); 58 | } catch (Error e) { 59 | warning (e.message); 60 | } 61 | }); 62 | 63 | welcome.app.connect (() => { 64 | stack.set_visible_child_full (view_project_creation, StackTransitionType.SLIDE_LEFT); 65 | project_editing.show_app_form (); 66 | }); 67 | 68 | welcome.switchboard.connect (() => { 69 | stack.set_visible_child_full (view_project_creation, StackTransitionType.SLIDE_LEFT); 70 | project_editing.show_form_switchboard (); 71 | }); 72 | 73 | welcome.wingpanel.connect (() => { 74 | stack.set_visible_child_full (view_project_creation, StackTransitionType.SLIDE_LEFT); 75 | project_editing.show_form_wingpanel (); 76 | }); 77 | 78 | manager.get_action (Actions.Window.FIRST_RUN).activate.connect (() => { 79 | last_visible_child_name = view_welcome; 80 | stack.set_visible_child_full (view_first_run, StackTransitionType.CROSSFADE); 81 | }); 82 | 83 | manager.get_action (Actions.Window.FIRST_RUN_END).activate.connect (() => { 84 | stack.set_visible_child_full (last_visible_child_name, StackTransitionType.CROSSFADE); 85 | }); 86 | 87 | manager.get_action (Actions.Window.SETTINGS_OPEN).activate.connect (() => { 88 | last_visible_child_name = stack.get_visible_child_name (); 89 | stack.set_visible_child_full (view_settings, StackTransitionType.CROSSFADE); 90 | }); 91 | 92 | manager.get_action (Actions.Window.SETTINGS_CLOSE).activate.connect (() => { 93 | if (last_visible_child_name == null) { 94 | last_visible_child_name = view_welcome; 95 | } 96 | 97 | stack.set_visible_child_full (last_visible_child_name, StackTransitionType.CROSSFADE); 98 | 99 | last_visible_child_name = null; 100 | }); 101 | 102 | manager.get_action (Actions.Window.SHOW_WELCOME_VIEW).activate.connect (() => { 103 | stack.set_visible_child_full (view_welcome, StackTransitionType.SLIDE_RIGHT); 104 | }); 105 | 106 | manager.get_action (Actions.ProjectEditing.TEMPLATE_DID_COPY).activate.connect (() => { 107 | stack.set_visible_child_full (view_welcome, StackTransitionType.CROSSFADE); 108 | }); 109 | } 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /src/Views/Partials/Forms/FormBase.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Granite; 22 | using Gtk; 23 | 24 | namespace Alcadica.Views.Partials.Forms { 25 | public abstract class FormBase : Grid { 26 | 27 | public bool is_valid = false; 28 | public signal void on_validate (); 29 | public signal void focusin (); 30 | public signal void submit (); 31 | 32 | construct { 33 | this.column_homogeneous = true; 34 | this.orientation = Orientation.VERTICAL; 35 | this.row_spacing = 8; 36 | } 37 | 38 | public abstract void reset (); 39 | public abstract void validate (); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/Views/Partials/Forms/FormNewApp.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Alcadica.Widgets; 22 | using Granite; 23 | using Gtk; 24 | 25 | namespace Alcadica.Views.Partials.Forms { 26 | public class FormNewApp : FormBase { 27 | public Button select_directory { get; set; } 28 | public EntryWithLabel project_name { get; set; } 29 | public EntryWithLabel rdnn_name { get; set; } 30 | public HeaderLabel form_title { get; set; } 31 | public string project_directory { get; set; } 32 | 33 | construct { 34 | var select_directory_text = _("Choose project folder"); 35 | var settings = new Services.UserSettings (); 36 | string rdnn = new Services.RDNN (settings.user_github_url).to_string (); 37 | 38 | form_title = new HeaderLabel (_("Create a new elementary App")); 39 | project_name = new EntryWithLabel (_("App name")); 40 | rdnn_name = new EntryWithLabel (_("RDNN name")); 41 | select_directory = new Button.with_label (select_directory_text); 42 | 43 | project_directory = ""; 44 | 45 | add (form_title); 46 | add (project_name); 47 | add (rdnn_name); 48 | add (select_directory); 49 | 50 | rdnn_name.entry.text = rdnn; 51 | project_name.pattern = Alcadica.CommonRegEx.PROJECT_NAME; 52 | 53 | select_directory.clicked.connect (() => { 54 | project_directory = Services.FileSystem.choose_directory (select_directory_text); 55 | validate (); 56 | }); 57 | 58 | project_name.changed.connect (() => { 59 | validate (); 60 | if (project_name.text != "") { 61 | rdnn_name.entry.text = rdnn + "." + project_name.text; 62 | } else { 63 | rdnn_name.entry.text = rdnn; 64 | } 65 | }); 66 | 67 | focusin.connect (() => { 68 | project_name.focusin (); 69 | }); 70 | } 71 | 72 | public string get_full_directory () { 73 | return Path.build_filename (project_directory, rdnn_name.entry.text); 74 | } 75 | 76 | public override void reset () { 77 | is_valid = false; 78 | rdnn_name.entry.text = ""; 79 | project_name.text = ""; 80 | project_directory = ""; 81 | } 82 | 83 | public override void validate () { 84 | this.is_valid = this.project_name.valid && this.project_directory != ""; 85 | this.on_validate (); 86 | } 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /src/Views/Partials/Forms/FormNewSwitchboardWidget.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Alcadica.Widgets; 22 | using Granite; 23 | using Gtk; 24 | 25 | namespace Alcadica.Views.Partials.Forms { 26 | public class FormNewSwitchboardWidget : FormBase { 27 | // public Switchboard.Plug.Category category { get; set; } 28 | public Button select_directory { get; set; } 29 | public EntryWithLabel project_name { get; set; } 30 | public ComboBoxWithLabel category { get; set; } 31 | public EntryWithLabel rdnn_name { get; set; } 32 | public EntryWithLabel plug_description { get; set; } 33 | public HeaderLabel form_title { get; set; } 34 | public string project_directory { get; set; } 35 | public string category_name { 36 | get { 37 | var option = this.category.get_option_by_value (this.category.value); 38 | 39 | if (option == null) { 40 | return ""; 41 | } 42 | 43 | return option.value; 44 | } 45 | } 46 | 47 | construct { 48 | var select_directory_text = _("Choose project folder"); 49 | var settings = new Services.UserSettings (); 50 | string rdnn = new Services.RDNN (settings.user_github_url).to_string (); 51 | 52 | this.category = new ComboBoxWithLabel (_("Switchboard category")); 53 | this.form_title = new HeaderLabel (_("Create a new Switchboard Plug")); 54 | this.project_name = new EntryWithLabel (_("Plug name")); 55 | this.plug_description = new EntryWithLabel (_("Plug description")); 56 | this.rdnn_name = new EntryWithLabel (_("RDNN name")); 57 | this.select_directory = new Button.with_label (select_directory_text); 58 | 59 | this.project_directory = ""; 60 | 61 | this.category.add_option (Switchboard.Plug.Category.PERSONAL, _("Personal")); 62 | this.category.add_option (Switchboard.Plug.Category.HARDWARE, _("Hardware")); 63 | this.category.add_option (Switchboard.Plug.Category.NETWORK, _("Network")); 64 | this.category.add_option (Switchboard.Plug.Category.SYSTEM, _("System")); 65 | this.category.add_option (Switchboard.Plug.Category.OTHER, _("Other")); 66 | this.category.value = Switchboard.Plug.Category.PERSONAL; 67 | 68 | this.add (this.form_title); 69 | this.add (this.project_name); 70 | this.add (this.plug_description); 71 | this.add (this.category); 72 | this.add (this.rdnn_name); 73 | this.add (this.select_directory); 74 | 75 | this.rdnn_name.entry.text = rdnn; 76 | this.project_name.pattern = Alcadica.CommonRegEx.PROJECT_NAME; 77 | 78 | this.select_directory.clicked.connect (() => { 79 | this.project_directory = Services.FileSystem.choose_directory (select_directory_text); 80 | this.validate (); 81 | }); 82 | 83 | this.project_name.changed.connect (() => { 84 | this.validate (); 85 | if (project_name.text != "") { 86 | rdnn_name.entry.text = rdnn + "." + project_name.text; 87 | } else { 88 | rdnn_name.entry.text = rdnn; 89 | } 90 | }); 91 | 92 | focusin.connect (() => { 93 | project_name.focusin (); 94 | }); 95 | } 96 | 97 | public string get_full_directory () { 98 | return Path.build_filename (project_directory, rdnn_name.entry.text); 99 | } 100 | 101 | public override void reset () { 102 | is_valid = false; 103 | rdnn_name.entry.text = ""; 104 | project_name.text = ""; 105 | project_directory = ""; 106 | } 107 | 108 | public override void validate () { 109 | this.is_valid = this.project_name.valid && this.project_directory != ""; 110 | this.on_validate (); 111 | } 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /src/Views/Partials/Forms/FormNewWingpanelWidget.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Alcadica.Widgets; 22 | using Granite; 23 | using Gtk; 24 | 25 | namespace Alcadica.Views.Partials.Forms { 26 | public class FormNewWingpanelWidget : FormBase { 27 | public Button select_directory { get; set; } 28 | public EntryWithLabel indicator_description { get; set; } 29 | public EntryWithLabel project_name { get; set; } 30 | public EntryWithLabel rdnn_name { get; set; } 31 | public HeaderLabel form_title { get; set; } 32 | public string project_directory { get; set; } 33 | 34 | construct { 35 | var select_directory_text = _("Choose project folder"); 36 | var settings = new Services.UserSettings (); 37 | string rdnn = new Services.RDNN (settings.user_github_url).to_string (); 38 | 39 | form_title = new HeaderLabel (_("Create a new Wingpanel Indicator")); 40 | indicator_description = new EntryWithLabel (_("Indicator description")); 41 | project_name = new EntryWithLabel (_("Indicator name")); 42 | rdnn_name = new EntryWithLabel (_("RDNN name")); 43 | select_directory = new Button.with_label (select_directory_text); 44 | 45 | project_directory = ""; 46 | 47 | indicator_description.entry.hide_icon = true; 48 | 49 | add (form_title); 50 | add (project_name); 51 | add (indicator_description); 52 | add (rdnn_name); 53 | add (select_directory); 54 | 55 | rdnn_name.entry.text = rdnn; 56 | project_name.pattern = Alcadica.CommonRegEx.PROJECT_NAME; 57 | 58 | select_directory.clicked.connect (() => { 59 | project_directory = Services.FileSystem.choose_directory (select_directory_text); 60 | validate (); 61 | }); 62 | 63 | project_name.changed.connect (() => { 64 | validate (); 65 | if (project_name.text != "") { 66 | rdnn_name.entry.text = rdnn + "." + project_name.text; 67 | } else { 68 | rdnn_name.entry.text = rdnn; 69 | } 70 | }); 71 | 72 | focusin.connect (() => { 73 | project_name.focusin (); 74 | }); 75 | } 76 | 77 | public string get_full_directory () { 78 | return Path.build_filename (project_directory, rdnn_name.entry.text); 79 | } 80 | 81 | public override void reset () { 82 | is_valid = false; 83 | rdnn_name.entry.text = ""; 84 | project_name.text = ""; 85 | indicator_description.text = ""; 86 | project_directory = ""; 87 | } 88 | 89 | public override void validate () { 90 | this.is_valid = this.project_name.valid && this.project_directory != ""; 91 | this.on_validate (); 92 | } 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /src/Views/Partials/Forms/FormUserData.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Alcadica.Widgets; 22 | using Granite; 23 | using Gtk; 24 | 25 | namespace Alcadica.Views.Partials.Forms { 26 | public class FormUserData : FormBase { 27 | private const string GITHUB_URL = "https://github.com"; 28 | public EntryWithLabel user_name { get; set; } 29 | public EntryWithLabel user_email { get; set; } 30 | public EntryWithLabel user_github_url { get; set; } 31 | public EntryWithLabel user_website_url { get; set; } 32 | 33 | construct { 34 | user_name = new EntryWithLabel (_("Name:"), _("John Doe")); 35 | user_email = new EntryWithLabel (_("Email:"), _("myemail@gmail.com")); 36 | user_github_url = new EntryWithLabel (_("Personal github address:"), _("https://github.com/yourname")); 37 | user_website_url = new EntryWithLabel (_("Personal website:"), _("https://www.mywebsite.com")); 38 | 39 | user_name.entry.pattern = Alcadica.CommonRegEx.USER_NAME; 40 | user_email.entry.pattern = Alcadica.CommonRegEx.USER_EMAIL; 41 | user_github_url.entry.pattern = Alcadica.CommonRegEx.URL; 42 | user_website_url.entry.pattern = Alcadica.CommonRegEx.URL; 43 | user_website_url.optional = true; 44 | 45 | attach (user_name, 0, 0, 1, 1); 46 | attach (user_email, 0, 1, 1, 1); 47 | attach (user_github_url, 0, 2, 1, 1); 48 | attach (user_website_url, 0, 3, 1, 1); 49 | 50 | user_email.changed.connect (() => { 51 | validate (); 52 | }); 53 | 54 | user_github_url.changed.connect (() => { 55 | validate (); 56 | }); 57 | 58 | user_name.changed.connect (() => { 59 | validate (); 60 | }); 61 | 62 | focusin.connect (() => { 63 | if (user_name.text != "") { 64 | user_email.focusin (); 65 | } else { 66 | user_name.focusin (); 67 | } 68 | }); 69 | 70 | fill_from_settings (); 71 | } 72 | 73 | public void fill_from_settings () { 74 | var settings = new Services.UserSettings (); 75 | 76 | if (settings.user_name != null && settings.user_name != "") { 77 | this.user_name.text = settings.user_name; 78 | } else { 79 | this.user_name.text = Environment.get_user_name (); 80 | } 81 | 82 | if (settings.user_email != null && settings.user_email != "") { 83 | this.user_email.text = settings.user_email; 84 | } 85 | 86 | if (settings.user_github_url != null && settings.user_github_url != "") { 87 | this.user_github_url.text = settings.user_github_url; 88 | } else { 89 | this.user_github_url.text = string.join ("/", GITHUB_URL, this.user_name.text); 90 | } 91 | 92 | if (settings.user_website_url != null && settings.user_website_url != "") { 93 | this.user_website_url.text = settings.user_website_url; 94 | } 95 | } 96 | 97 | public override void reset () { 98 | this.is_valid = false; 99 | this.user_name.text = Environment.get_user_name (); 100 | this.user_email.text = ""; 101 | this.user_github_url.text = ""; 102 | this.user_website_url.text = ""; 103 | } 104 | 105 | public override void validate () { 106 | this.user_name.entry.validate (); 107 | this.user_email.entry.validate (); 108 | this.user_github_url.entry.validate (); 109 | this.user_website_url.entry.validate (); 110 | 111 | this.is_valid = this.user_name.entry.valid && this.user_email.entry.valid && this.user_github_url.entry.valid; 112 | this.on_validate (); 113 | } 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /src/Views/Partials/Settings/SettingsBase.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Granite; 22 | using Gtk; 23 | 24 | namespace Alcadica.Views.Partials { 25 | public class SettingsBase : Box { 26 | public Grid grid = new Grid (); 27 | 28 | construct { 29 | this.orientation = Orientation.VERTICAL; 30 | this.set_center_widget (grid); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/Views/Partials/Settings/UserDataSettings.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Granite; 22 | using Gtk; 23 | 24 | namespace Alcadica.Views.Partials.Settings { 25 | public class UserDataSettings : SettingsBase { 26 | public Forms.FormUserData form = new Forms.FormUserData (); 27 | public HeaderLabel title = new HeaderLabel (_("User settings")); 28 | 29 | construct { 30 | Services.UserSettings settings = new Services.UserSettings (); 31 | 32 | title.set_xalign (0); 33 | 34 | this.add (title); 35 | this.add (this.form); 36 | 37 | this.form.user_name.text = settings.user_name; 38 | this.form.user_email.text = settings.user_email; 39 | this.form.user_github_url.text = settings.user_github_url; 40 | this.form.user_website_url.text = settings.user_website_url; 41 | 42 | this.form.user_name.changed.connect (() => { 43 | settings.user_name = this.form.user_name.text; 44 | }); 45 | 46 | this.form.user_email.changed.connect (() => { 47 | settings.user_email = this.form.user_email.text; 48 | }); 49 | 50 | this.form.user_github_url.changed.connect (() => { 51 | settings.user_github_url = this.form.user_github_url.text; 52 | }); 53 | 54 | this.form.user_website_url.changed.connect (() => { 55 | settings.user_website_url = this.form.user_website_url.text; 56 | }); 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/Views/Partials/Settings/UserDataSettingsFirstRun.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Granite; 22 | using Gtk; 23 | 24 | namespace Alcadica.Views.Partials.Settings { 25 | public class UserDataSettingsFirstRun : Gtk.Box { 26 | public Alcadica.Widgets.ActionBar actions = new Alcadica.Widgets.ActionBar (); 27 | public UserDataSettings userdata = new UserDataSettings (); 28 | 29 | construct { 30 | Grid grid = new Grid (); 31 | Image icon = new Image.from_icon_name (APP_ID, IconSize.DIALOG); 32 | Label welcome_label = new Label (_("First run setup")); 33 | Label welcome_label_subtitle = new Label (_("Before proceeding I'd love to know more about you")); 34 | Label welcome_label_disclaimer = new Label (_("Your data will not be stored in a server")); 35 | Services.ActionManager manager = Services.ActionManager.instance; 36 | 37 | actions.margin_top = 20; 38 | grid.orientation = Orientation.VERTICAL; 39 | this.orientation = Orientation.VERTICAL; 40 | icon.margin_bottom = 20; 41 | welcome_label_disclaimer.margin_bottom = 20; 42 | 43 | welcome_label.get_style_context ().add_class (STYLE_CLASS_H1_LABEL); 44 | welcome_label_subtitle.get_style_context ().add_class (STYLE_CLASS_PRIMARY_LABEL); 45 | welcome_label_disclaimer.get_style_context ().add_class ("dim-label"); 46 | 47 | grid.add (icon); 48 | grid.add (welcome_label); 49 | grid.add (welcome_label_subtitle); 50 | grid.add (welcome_label_disclaimer); 51 | grid.add (userdata); 52 | grid.add (actions); 53 | 54 | this.actions.primary_action.label = _("Save user data"); 55 | this.set_halign (Align.CENTER); 56 | this.set_center_widget (grid); 57 | 58 | this.actions.primary_action.clicked.connect (() => { 59 | manager.dispatch (Actions.Window.FIRST_RUN_END); 60 | }); 61 | 62 | this.userdata.form.on_validate.connect (() => { 63 | if (this.userdata.form.is_valid) { 64 | this.actions.enable_primary_action (); 65 | } else { 66 | this.actions.disable_primary_action (); 67 | } 68 | }); 69 | 70 | manager.get_action (Actions.Window.START).activate.connect (() => { 71 | this.userdata.title.hide (); 72 | this.actions.secondary_action.hide (); 73 | 74 | this.userdata.form.validate (); 75 | 76 | if (this.userdata.form.is_valid) { 77 | this.actions.enable_primary_action (); 78 | } else { 79 | this.actions.disable_primary_action (); 80 | } 81 | }); 82 | } 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /src/Views/Partials/Window/HeaderBar.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Granite; 22 | using Granite.Widgets; 23 | using Gtk; 24 | 25 | namespace Alcadica.Views.Partials.Window { 26 | public class HeaderBar : Gtk.HeaderBar { 27 | construct { 28 | Button button_back = new Button.with_label (_("Back")); 29 | Button button_settings = new Button.from_icon_name ("open-menu"); 30 | button_back.valign = Gtk.Align.CENTER; 31 | button_settings.valign = Gtk.Align.CENTER; 32 | 33 | button_back.get_style_context ().add_class (STYLE_CLASS_BACK_BUTTON); 34 | // STYLE_CLASS_BACK_BUTTON 35 | var css_context = this.get_style_context (); 36 | css_context.add_class ("input-header"); 37 | css_context.add_class ("titlebar"); 38 | css_context.add_class ("default-decoration"); 39 | css_context.add_class (Gtk.STYLE_CLASS_FLAT); 40 | 41 | this.show_close_button = true; 42 | this.pack_start (button_back); 43 | this.pack_end (button_settings); 44 | 45 | var manager = Alcadica.Services.ActionManager.instance; 46 | 47 | button_back.clicked.connect (() => { 48 | manager.dispatch (Actions.Window.SETTINGS_CLOSE); 49 | }); 50 | 51 | button_settings.clicked.connect (() => { 52 | manager.dispatch (Actions.Window.SETTINGS_OPEN); 53 | }); 54 | 55 | manager.get_action (Actions.Window.START).activate.connect (() => { 56 | button_back.hide (); 57 | }); 58 | 59 | manager.get_action (Actions.Window.SETTINGS_OPEN).activate.connect (() => { 60 | button_settings.hide (); 61 | button_back.show (); 62 | }); 63 | 64 | manager.get_action (Actions.Window.SETTINGS_CLOSE).activate.connect (() => { 65 | button_back.hide (); 66 | button_settings.show (); 67 | }); 68 | 69 | manager.get_action (Actions.Window.FIRST_RUN).activate.connect (() => { 70 | button_settings.hide (); 71 | }); 72 | 73 | manager.get_action (Actions.Window.FIRST_RUN_END).activate.connect (() => { 74 | button_settings.show (); 75 | }); 76 | } 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /src/Views/SettingsView.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Granite; 22 | using Gtk; 23 | using Alcadica.Views.Partials; 24 | using Alcadica.Widgets; 25 | 26 | namespace Alcadica.Views { 27 | public class SettingsView : Paned { 28 | public Stack stack_content = new Stack (); 29 | public Box stack_menu = new Box (Orientation.VERTICAL, 0); 30 | public Partials.Settings.UserDataSettings form_user = new Partials.Settings.UserDataSettings (); 31 | 32 | construct { 33 | ListBox listbox = new ListBox (); 34 | SettingItem button_form_user = new SettingItem (_("User settings"), _("Sets your personal developer data"), "office-contact"); 35 | 36 | listbox.selection_mode = Gtk.SelectionMode.SINGLE; 37 | 38 | this.pack1 (this.stack_menu, true, true); 39 | this.pack2 (this.stack_content, true, true); 40 | this.set_position (220); 41 | 42 | this.stack_content.add (this.form_user); 43 | this.stack_menu.add (listbox); 44 | 45 | listbox.add (button_form_user); 46 | 47 | stack_content.margin = 10; 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/Views/WelcomeView.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Granite; 22 | using Gtk; 23 | 24 | namespace Alcadica.Views { 25 | public class WelcomeView : Granite.Widgets.Welcome { 26 | 27 | public signal void app (); 28 | public signal void switchboard (); 29 | public signal void wingpanel (); 30 | 31 | public WelcomeView () { 32 | Object ( 33 | title: _("Develop for elementary"), 34 | subtitle: _("Choose what you wish to develop") 35 | ); 36 | } 37 | 38 | construct { 39 | append ("distributor-logo", _("App"), _("Create a new elementary OS application.")); 40 | append ("preferences-desktop", _("Switchboard plug"), _("Create a new elementary OS switchboard plug.")); 41 | append ("preferences-desktop-wallpaper", _("Wingpanel indicator"), _("Create a new elementary OS wingpanel indicator.")); 42 | 43 | this.activated.connect (index => { 44 | switch (index) { 45 | case 0: this.app (); break; 46 | case 1: this.switchboard (); break; 47 | case 2: this.wingpanel (); break; 48 | } 49 | }); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /src/Widgets/ActionBar.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Granite; 22 | using Gtk; 23 | 24 | namespace Alcadica.Widgets { 25 | public class ActionBar : Gtk.Grid { 26 | public Button primary_action { get; set; } 27 | public Button secondary_action { get; set; } 28 | 29 | construct { 30 | this.expand = true; 31 | this.orientation = Orientation.HORIZONTAL; 32 | this.primary_action = new Button.with_label (_("Create")); 33 | this.secondary_action = new Button.with_label (_("Undo")); 34 | this.add (this.secondary_action); 35 | this.add (this.primary_action); 36 | this.column_spacing = 12; 37 | this.set_column_homogeneous (true); 38 | 39 | this.primary_action.get_style_context ().add_class (STYLE_CLASS_SUGGESTED_ACTION); 40 | } 41 | 42 | public void disable () { 43 | this.disable_primary_action (); 44 | this.disable_secondary_action (); 45 | } 46 | 47 | public void enable () { 48 | this.enable_primary_action (); 49 | this.enable_secondary_action (); 50 | } 51 | 52 | public void toggle (bool value) { 53 | this.toggle_primary_action (value); 54 | this.toggle_secondary_action (value); 55 | } 56 | 57 | public void disable_primary_action () { 58 | this.primary_action.set_sensitive (false); 59 | } 60 | 61 | public void enable_primary_action () { 62 | this.primary_action.set_sensitive (true); 63 | } 64 | 65 | public void toggle_primary_action (bool value) { 66 | this.primary_action.set_sensitive (value); 67 | } 68 | 69 | public void disable_secondary_action () { 70 | this.secondary_action.set_sensitive (false); 71 | } 72 | 73 | public void enable_secondary_action () { 74 | this.secondary_action.set_sensitive (true); 75 | } 76 | 77 | public void toggle_secondary_action (bool value) { 78 | this.secondary_action.set_sensitive (value); 79 | } 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /src/Widgets/ComboBoxWithLabel.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Alcadica.Widgets; 22 | using Granite; 23 | using Gtk; 24 | 25 | namespace Alcadica.Widgets { 26 | public class ComboBoxWithLabelOption : Entities.Generic.KeyValuePair { 27 | public ComboBoxWithLabelOption (int key, string label) { 28 | Object (key: key, value: label); 29 | } 30 | } 31 | 32 | public class ComboBoxWithLabel : Gtk.Grid { 33 | public ComboBoxText combobox { get; set; } 34 | public Gtk.Label label { get; set; } 35 | public List options = new List (); 36 | public signal void changed (int key); 37 | 38 | public int value { 39 | get { 40 | int index = this.combobox.get_active (); 41 | return this.options.nth_data (index).key; 42 | } 43 | set { 44 | foreach (var item in this.options) { 45 | if (item.key == value) { 46 | this.combobox.set_active (this.options.index (item)); 47 | } 48 | } 49 | } 50 | } 51 | 52 | public ComboBoxWithLabel (string entry_label) { 53 | this.combobox = new ComboBoxText (); 54 | this.label = new Label (entry_label); 55 | this.label.set_xalign (0); 56 | this.label.get_style_context ().add_class (Granite.STYLE_CLASS_PRIMARY_LABEL); 57 | this.orientation = Gtk.Orientation.VERTICAL; 58 | this.row_spacing = 0; 59 | 60 | this.add (this.label); 61 | this.add (this.combobox); 62 | this.set_hexpand (true); 63 | 64 | this.label.margin_bottom = 4; 65 | this.label.hexpand = true; 66 | this.combobox.hexpand = true; 67 | 68 | this.combobox.changed.connect (() => { 69 | this.changed (this.value); 70 | }); 71 | } 72 | 73 | public void add_option (int key, string option_label) { 74 | ComboBoxWithLabelOption option = new ComboBoxWithLabelOption (key, option_label); 75 | this.options.append (option); 76 | this.combobox.append_text (option.value); 77 | } 78 | 79 | public ComboBoxWithLabelOption? get_option_by_value (int value) { 80 | ComboBoxWithLabelOption? option = null; 81 | 82 | foreach (var item in this.options) { 83 | if (item.key == value) { 84 | option = item; 85 | } 86 | } 87 | 88 | return option; 89 | } 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /src/Widgets/Entry.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | 22 | namespace Alcadica.Widgets { 23 | public class Entry : Gtk.Entry { 24 | 25 | private bool _hide_icon = false; 26 | 27 | private bool _validity = true; 28 | 29 | public bool has_maxlength { 30 | get { 31 | return this.max_length.to_string () != "000000000000000"; 32 | } 33 | } 34 | public bool has_minlength { 35 | get { 36 | return this.min_length.to_string () != "000000000000000"; 37 | } 38 | } 39 | public bool has_pattern { 40 | get { 41 | return this.pattern != "" && this.pattern != null; 42 | } 43 | } 44 | public bool hide_icon { 45 | get { 46 | return this._hide_icon; 47 | } 48 | set { 49 | this._hide_icon = value; 50 | this.assign_icon (); 51 | } 52 | } 53 | public bool invalid { 54 | get { 55 | return !this._validity; 56 | } 57 | set { 58 | if (value != this._validity) { 59 | this.on_validity_change (); 60 | } 61 | 62 | this._validity = !value; 63 | this.assign_icon (); 64 | } 65 | } 66 | public int min_length { get; set; } 67 | public bool valid { 68 | get { 69 | return this._validity; 70 | } 71 | set { 72 | if (value != this._validity) { 73 | this.on_validity_change (); 74 | } 75 | 76 | this._validity = value; 77 | this.assign_icon (); 78 | } 79 | } 80 | public bool should_validate { 81 | get { 82 | return this.has_pattern || this.has_maxlength || this.has_minlength; 83 | } 84 | } 85 | public signal void on_invalid (); 86 | public signal void on_valid (); 87 | public signal void on_validity_change (); 88 | public string pattern { get; set; } 89 | 90 | construct { 91 | this.changed.connect (() => { 92 | this.validate (); 93 | if (this.valid) { 94 | this.on_valid (); 95 | } else { 96 | this.on_invalid (); 97 | } 98 | }); 99 | 100 | this.on_valid.connect (() => { 101 | this.assign_icon (); 102 | }); 103 | 104 | this.on_invalid.connect (() => { 105 | this.assign_icon (); 106 | }); 107 | } 108 | 109 | private void assign_icon () { 110 | if (this._hide_icon) { 111 | return; 112 | } 113 | 114 | if (!this.should_validate) { 115 | return; 116 | } 117 | 118 | if (this.valid) { 119 | this.secondary_icon_name = "selection-checked"; 120 | } else { 121 | this.secondary_icon_name = ""; 122 | } 123 | } 124 | 125 | public void validate () { 126 | if (!this.should_validate) { 127 | this.valid = true; 128 | return; 129 | } 130 | 131 | string _pattern = this.pattern; 132 | 133 | if (!this.has_pattern) { 134 | _pattern = "."; 135 | } 136 | 137 | try { 138 | Regex validation_regexp = new Regex (_pattern); 139 | 140 | if (validation_regexp != null) { 141 | this.valid = validation_regexp.match (this.text); 142 | } 143 | 144 | } catch (Error error) { 145 | warning (error.message); 146 | } 147 | } 148 | } 149 | } 150 | -------------------------------------------------------------------------------- /src/Widgets/EntryWithLabel.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | 22 | namespace Alcadica.Widgets { 23 | public class EntryWithLabel : Gtk.Grid { 24 | protected bool _is_optional = false; 25 | public Entry entry { get; set; } 26 | public Gtk.Label? label_optional = null; 27 | public Gtk.Label label { get; set; } 28 | public Gtk.InputPurpose input_purpose { 29 | get { 30 | return this.entry.input_purpose; 31 | } 32 | set { 33 | this.entry.input_purpose = value; 34 | } 35 | } 36 | public signal void changed (string text); 37 | public bool editable { 38 | get { 39 | return this.entry.editable; 40 | } 41 | set { 42 | this.entry.editable = value; 43 | } 44 | } 45 | public bool invalid { 46 | get { 47 | return this.entry.invalid; 48 | } 49 | set { 50 | this.entry.invalid = value; 51 | } 52 | } 53 | public bool optional { 54 | get { 55 | return this._is_optional; 56 | } 57 | set { 58 | this._is_optional = value; 59 | 60 | if (this.label_optional == null) { 61 | this.label_optional = new Gtk.Label (_("Optional")); 62 | this.label_optional.get_style_context ().add_class (Gtk.STYLE_CLASS_DIM_LABEL); 63 | this.attach_next_to (this.label_optional, this.label, Gtk.PositionType.RIGHT); 64 | } 65 | 66 | if (value) { 67 | this.label_optional.show (); 68 | } else { 69 | this.label_optional.hide (); 70 | } 71 | } 72 | } 73 | public string pattern { 74 | get { 75 | return this.entry.pattern; 76 | } 77 | set { 78 | this.entry.pattern = value; 79 | } 80 | } 81 | public string text { 82 | get { 83 | return this.entry.text; 84 | } 85 | set { 86 | this.entry.text = value; 87 | } 88 | } 89 | public bool valid { 90 | get { 91 | return this.entry.valid; 92 | } 93 | set { 94 | this.entry.valid = value; 95 | } 96 | } 97 | 98 | public EntryWithLabel (string entry_label, string? placeholder_text = null, string? optional_label = null) { 99 | this.entry = new Entry (); 100 | this.label = new Gtk.Label (entry_label); 101 | 102 | this.label.set_xalign (0); 103 | this.label.get_style_context ().add_class (Granite.STYLE_CLASS_PRIMARY_LABEL); 104 | this.orientation = Gtk.Orientation.VERTICAL; 105 | this.row_spacing = 0; 106 | 107 | this.attach (this.label, 0, 0, 1); 108 | this.attach (this.entry, 0, 1, 2); 109 | this.set_expand (true); 110 | 111 | this.label.margin_bottom = 4; 112 | 113 | if (placeholder_text != null) { 114 | this.entry.placeholder_text = placeholder_text; 115 | } 116 | 117 | this.entry.changed.connect (() => { 118 | this.changed (this.entry.text); 119 | }); 120 | } 121 | 122 | public void focusin () { 123 | this.entry.grab_focus (); 124 | } 125 | 126 | public void set_expand (bool expand) { 127 | this.hexpand = true; 128 | this.entry.hexpand = expand; 129 | this.label.hexpand = expand; 130 | } 131 | 132 | public void set_xalign (int align) { 133 | this.label.set_xalign (align); 134 | } 135 | } 136 | } 137 | -------------------------------------------------------------------------------- /src/Widgets/SettingItem.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Granite; 22 | using Gtk; 23 | using Alcadica.Views.Partials; 24 | 25 | namespace Alcadica.Widgets { 26 | public class SettingItem : ListBox { 27 | public Image? icon = null; 28 | public Grid grid { get; set; } 29 | public Label subtitle_label { get; set; } 30 | public Label title_label { get; set; } 31 | public string subtitle { get; set; } 32 | public string title { get; set; } 33 | 34 | public SettingItem (string title, string subtitle, string? icon_name = null) { 35 | this.grid = new Gtk.Grid (); 36 | 37 | this.subtitle_label = new Gtk.Label (subtitle); 38 | this.title_label = new Gtk.Label (title); 39 | 40 | this.title_label.get_style_context ().add_class (STYLE_CLASS_H3_LABEL); 41 | this.title_label.ellipsize = Pango.EllipsizeMode.END; 42 | this.title_label.xalign = 0; 43 | this.title_label.valign = Gtk.Align.END; 44 | 45 | this.subtitle_label.use_markup = true; 46 | this.subtitle_label.ellipsize = Pango.EllipsizeMode.END; 47 | this.subtitle_label.xalign = 0; 48 | this.subtitle_label.valign = Gtk.Align.START; 49 | 50 | this.grid.margin = 6; 51 | this.grid.column_spacing = 6; 52 | 53 | if (icon_name != null) { 54 | this.icon = new Gtk.Image.from_icon_name (icon_name.to_string (), IconSize.LARGE_TOOLBAR); 55 | this.grid.attach (this.icon, 0, 0, 1, 2); 56 | } 57 | 58 | this.grid.attach (title_label, 1, 0, 1, 1); 59 | this.grid.attach (subtitle_label, 1, 1, 1, 1); 60 | 61 | this.add (this.grid); 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/Widgets/SwitchWithLabel.vala: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 alcadica (https://www.alcadica.com) 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public 15 | * License along with this program; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17 | * Boston, MA 02110-1301 USA 18 | * 19 | * Authored by: alcadica 20 | */ 21 | using Granite; 22 | using Gtk; 23 | 24 | namespace Alcadica.Widgets { 25 | public class SwitchWithLabel : Grid { 26 | public Switch entry { get; set; } 27 | public Label label { get; set; } 28 | public signal void changed (bool is_active); 29 | public bool active { 30 | get { 31 | return this.entry.active; 32 | } 33 | set { 34 | this.entry.active = value; 35 | } 36 | } 37 | public bool editable { 38 | get { 39 | return this.entry.get_sensitive (); 40 | } 41 | set { 42 | this.entry.set_sensitive (value); 43 | } 44 | } 45 | 46 | public SwitchWithLabel (string entry_label) { 47 | this.entry = new Switch (); 48 | this.label = new Label (entry_label); 49 | 50 | this.label.set_xalign (0); 51 | this.orientation = Orientation.HORIZONTAL; 52 | this.row_spacing = 4; 53 | 54 | this.add (this.entry); 55 | this.add (this.label); 56 | this.set_expand (true); 57 | 58 | this.entry.activate.connect (() => { 59 | this.changed (this.entry.active); 60 | }); 61 | } 62 | 63 | public void focusin () { 64 | this.entry.grab_focus (); 65 | } 66 | 67 | public void set_expand (bool expand) { 68 | this.expand = true; 69 | this.entry.expand = expand; 70 | this.label.expand = expand; 71 | } 72 | 73 | public void set_xalign (int align) { 74 | this.label.set_xalign (align); 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /src/meson.build: -------------------------------------------------------------------------------- 1 | sources = files( 2 | 'Application.vala', 3 | 'Actions/ProjectEditing/Actions.vala', 4 | 'Actions/Window/Actions.vala', 5 | 'CommonRegEx.vala', 6 | 'Entities/Generic/KeyValuePair.vala', 7 | 'Entities/Template/TemplateFile.vala', 8 | 'Entities/Template/TemplateFileType.vala', 9 | 'Entities/Template/TemplateToken.vala', 10 | 'Services/ActionManager.vala', 11 | 'Services/FileSystem.vala', 12 | 'Services/RDNN.vala', 13 | 'Services/Templates/App.vala', 14 | 'Services/Templates/SwitchboardWidget.vala', 15 | 'Services/Templates/WingpanelWidget.vala', 16 | 'Services/TemplateService.vala', 17 | 'Services/UserSettings.vala', 18 | 'Views/MainView.vala', 19 | 'Views/Partials/Forms/FormBase.vala', 20 | 'Views/Partials/Forms/FormNewApp.vala', 21 | 'Views/Partials/Forms/FormNewSwitchboardWidget.vala', 22 | 'Views/Partials/Forms/FormNewWingpanelWidget.vala', 23 | 'Views/Partials/Forms/FormUserData.vala', 24 | 'Views/Partials/Settings/SettingsBase.vala', 25 | 'Views/Partials/Settings/UserDataSettings.vala', 26 | 'Views/Partials/Settings/UserDataSettingsFirstRun.vala', 27 | 'Views/Partials/Window/HeaderBar.vala', 28 | 'Views/ProjectEditingView.vala', 29 | 'Views/SettingsView.vala', 30 | 'Views/WelcomeView.vala', 31 | 'Widgets/ActionBar.vala', 32 | 'Widgets/ComboBoxWithLabel.vala', 33 | 'Widgets/Entry.vala', 34 | 'Widgets/EntryWithLabel.vala', 35 | 'Widgets/SettingItem.vala', 36 | 'Widgets/SwitchWithLabel.vala', 37 | ) 38 | --------------------------------------------------------------------------------