Merge branch 'application-utility' into 'master'

Application utility

See merge request applications/manjaro-hello!65
This commit is contained in:
Frede Hundewadt 2018-09-23 13:49:19 +02:00
commit 8fa098243a
10 changed files with 945 additions and 146 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
*~
locale/*
__pycache__/
.idea

11
.idea/manjaro-hello.iml generated Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TestRunnerService">
<option name="PROJECT_TEST_RUNNER" value="Unittests" />
</component>
</module>

7
.idea/misc.xml generated Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7" project-jdk-type="Python SDK" />
</project>

8
.idea/modules.xml generated Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/manjaro-hello.iml" filepath="$PROJECT_DIR$/.idea/manjaro-hello.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

724
.idea/workspace.xml generated Normal file
View File

@ -0,0 +1,724 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="1878e107-6f19-4cdd-96ac-cf56d1731299" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FUSProjectUsageTrigger">
<session id="1179412992">
<usages-collector id="statistics.lifecycle.project">
<counts>
<entry key="project.closed" value="11" />
<entry key="project.open.time.0" value="5" />
<entry key="project.open.time.4" value="2" />
<entry key="project.open.time.5" value="3" />
<entry key="project.open.time.6" value="1" />
<entry key="project.open.time.7" value="1" />
<entry key="project.opened" value="13" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.open">
<counts>
<entry key="app-utility" value="2" />
<entry key="gitignore" value="1" />
<entry key="glade" value="3" />
<entry key="json" value="11" />
<entry key="py" value="75" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.open">
<counts>
<entry key="JSON" value="11" />
<entry key="PLAIN_TEXT" value="4" />
<entry key="Python" value="77" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.edit">
<counts>
<entry key="Python Console" value="31" />
<entry key="app-utility" value="29" />
<entry key="dummy" value="388" />
<entry key="gitignore" value="6" />
<entry key="glade" value="21" />
<entry key="json" value="143" />
<entry key="py" value="4802" />
<entry key="txt" value="1398" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.edit">
<counts>
<entry key="JSON" value="143" />
<entry key="PLAIN_TEXT" value="1813" />
<entry key="Python" value="4862" />
</counts>
</usages-collector>
<usages-collector id="statistics.js.language.service.starts" />
</session>
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/manjaro_hello.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1590">
<caret line="106" column="27" selection-start-line="106" selection-start-column="27" selection-end-line="106" selection-end-column="27" />
<folding>
<element signature="e#24#38#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Python Script" />
</list>
</option>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>share_dir</find>
<find>application</find>
<find>applications</find>
<find>appBrowser</find>
<find>application_browser</find>
<find>on_btn</find>
</findStrings>
<replaceStrings>
<replace>data_path</replace>
<replace>appBrowser</replace>
</replaceStrings>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/app-utility" />
<option value="$PROJECT_DIR$/.gitignore" />
<option value="$PROJECT_DIR$/src/applications/applications.py" />
<option value="$PROJECT_DIR$/src/applications/applications_config.py" />
<option value="$PROJECT_DIR$/src/testConfigClass.py" />
<option value="$PROJECT_DIR$/src/applications/base_config.py" />
<option value="$PROJECT_DIR$/src/install-alone.py" />
<option value="$PROJECT_DIR$/src/applications/alpm.py" />
<option value="$PROJECT_DIR$/src/applications/app_base_config.py" />
<option value="$PROJECT_DIR$/src/applications/exceptions.py" />
<option value="$PROJECT_DIR$/src/applications/configs.py" />
<option value="$PROJECT_DIR$/applications/browser.py" />
<option value="$PROJECT_DIR$/applications/browser_config.py" />
<option value="$PROJECT_DIR$/applications/hello_config.py" />
<option value="$PROJECT_DIR$/applications/iso_config.py" />
<option value="$PROJECT_DIR$/applications/stand_alone_config.py" />
<option value="$PROJECT_DIR$/src/applications/stand_alone_config.py" />
<option value="$PROJECT_DIR$/src/applications/iso_config.py" />
<option value="$PROJECT_DIR$/src/__init__.py" />
<option value="$PROJECT_DIR$/data/browser-conf.json" />
<option value="$PROJECT_DIR$/src/plugins/applications/browser.py" />
<option value="$PROJECT_DIR$/src/applications/hello_config.py" />
<option value="$PROJECT_DIR$/src/applications/browser_base_config.py" />
<option value="$PROJECT_DIR$/src/applications/app_data.py" />
<option value="$PROJECT_DIR$/src/applications/app_browser.py" />
<option value="$PROJECT_DIR$/src/applications/browser_config.py" />
<option value="$PROJECT_DIR$/src/applications/data.py" />
<option value="$PROJECT_DIR$/src/applications/applicationbrowser.py" />
<option value="$PROJECT_DIR$/src/applications/browser.py" />
<option value="$PROJECT_DIR$/src/applications/application_browser.py" />
<option value="$PROJECT_DIR$/src/applications/__init__.py" />
<option value="$PROJECT_DIR$/src/application_utility/application_browser.py" />
<option value="$PROJECT_DIR$/src/application_utility/__init__.py" />
<option value="$PROJECT_DIR$/data/preferences.json" />
<option value="$PROJECT_DIR$/ui/manjaro-hello.glade" />
<option value="$PROJECT_DIR$/src/manjaro_hello.py" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="1991" />
<option name="y" value="21" />
<option name="width" value="1398" />
<option name="height" value="965" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="manjaro-hello" type="b2602c69:ProjectViewProjectNode" />
<item name="manjaro-hello" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="manjaro-hello" type="b2602c69:ProjectViewProjectNode" />
<item name="manjaro-hello" type="462c0819:PsiDirectoryNode" />
<item name="data" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="manjaro-hello" type="b2602c69:ProjectViewProjectNode" />
<item name="manjaro-hello" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="manjaro-hello" type="b2602c69:ProjectViewProjectNode" />
<item name="manjaro-hello" type="462c0819:PsiDirectoryNode" />
<item name="ui" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/data" />
<recent name="$PROJECT_DIR$/src" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/src" />
<recent name="$PROJECT_DIR$/src/plugins" />
<recent name="$PROJECT_DIR$" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="1878e107-6f19-4cdd-96ac-cf56d1731299" name="Default Changelist" comment="" />
<created>1534949710604</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1534949710604</updated>
</task>
<task id="LOCAL-00003" summary="split preferences">
<created>1536411499431</created>
<option name="number" value="00003" />
<option name="presentableId" value="LOCAL-00003" />
<option name="project" value="LOCAL" />
<updated>1536411499431</updated>
</task>
<task id="LOCAL-00004" summary="added plugin manager">
<created>1536411521103</created>
<option name="number" value="00004" />
<option name="presentableId" value="LOCAL-00004" />
<option name="project" value="LOCAL" />
<updated>1536411521103</updated>
</task>
<task id="LOCAL-00005" summary="plugin applications">
<created>1536411558753</created>
<option name="number" value="00005" />
<option name="presentableId" value="LOCAL-00005" />
<option name="project" value="LOCAL" />
<updated>1536411558753</updated>
</task>
<task id="LOCAL-00006" summary="back to one pref file">
<created>1536414428607</created>
<option name="number" value="00006" />
<option name="presentableId" value="LOCAL-00006" />
<option name="project" value="LOCAL" />
<updated>1536414428607</updated>
</task>
<task id="LOCAL-00007" summary="move&#10;remove plugin manager">
<created>1536415933849</created>
<option name="number" value="00007" />
<option name="presentableId" value="LOCAL-00007" />
<option name="project" value="LOCAL" />
<updated>1536415933849</updated>
</task>
<task id="LOCAL-00008" summary="rearrange">
<created>1536416490489</created>
<option name="number" value="00008" />
<option name="presentableId" value="LOCAL-00008" />
<option name="project" value="LOCAL" />
<updated>1536416490489</updated>
</task>
<task id="LOCAL-00009" summary="cosmetic">
<created>1536418940294</created>
<option name="number" value="00009" />
<option name="presentableId" value="LOCAL-00009" />
<option name="project" value="LOCAL" />
<updated>1536418940294</updated>
</task>
<task id="LOCAL-00010" summary="added comments">
<created>1536419834210</created>
<option name="number" value="00010" />
<option name="presentableId" value="LOCAL-00010" />
<option name="project" value="LOCAL" />
<updated>1536419834210</updated>
</task>
<task id="LOCAL-00011" summary="split classes">
<created>1536420193376</created>
<option name="number" value="00011" />
<option name="presentableId" value="LOCAL-00011" />
<option name="project" value="LOCAL" />
<updated>1536420193376</updated>
</task>
<task id="LOCAL-00012" summary="pack experiment">
<created>1536421211422</created>
<option name="number" value="00012" />
<option name="presentableId" value="LOCAL-00012" />
<option name="project" value="LOCAL" />
<updated>1536421211422</updated>
</task>
<task id="LOCAL-00013" summary="commented screen shot url">
<created>1536421394042</created>
<option name="number" value="00013" />
<option name="presentableId" value="LOCAL-00013" />
<option name="project" value="LOCAL" />
<updated>1536421394042</updated>
</task>
<task id="LOCAL-00014" summary="minor formatting">
<created>1536422379462</created>
<option name="number" value="00014" />
<option name="presentableId" value="LOCAL-00014" />
<option name="project" value="LOCAL" />
<updated>1536422379462</updated>
</task>
<task id="LOCAL-00015" summary="redefine reload to reset">
<created>1536422647180</created>
<option name="number" value="00015" />
<option name="presentableId" value="LOCAL-00015" />
<option name="project" value="LOCAL" />
<updated>1536422647180</updated>
</task>
<task id="LOCAL-00016" summary="refactor">
<created>1536425218221</created>
<option name="number" value="00016" />
<option name="presentableId" value="LOCAL-00016" />
<option name="project" value="LOCAL" />
<updated>1536425218221</updated>
</task>
<task id="LOCAL-00017" summary="enhance logging">
<created>1536425669114</created>
<option name="number" value="00017" />
<option name="presentableId" value="LOCAL-00017" />
<option name="project" value="LOCAL" />
<updated>1536425669114</updated>
</task>
<task id="LOCAL-00018" summary="experiments">
<created>1536426261137</created>
<option name="number" value="00018" />
<option name="presentableId" value="LOCAL-00018" />
<option name="project" value="LOCAL" />
<updated>1536426261137</updated>
</task>
<task id="LOCAL-00019" summary="split classes">
<created>1536426713520</created>
<option name="number" value="00019" />
<option name="presentableId" value="LOCAL-00019" />
<option name="project" value="LOCAL" />
<updated>1536426713520</updated>
</task>
<task id="LOCAL-00020" summary="commit">
<created>1536426798365</created>
<option name="number" value="00020" />
<option name="presentableId" value="LOCAL-00020" />
<option name="project" value="LOCAL" />
<updated>1536426798365</updated>
</task>
<task id="LOCAL-00021" summary="expand/collapse group on double click">
<created>1536428318542</created>
<option name="number" value="00021" />
<option name="presentableId" value="LOCAL-00021" />
<option name="project" value="LOCAL" />
<updated>1536428318542</updated>
</task>
<task id="LOCAL-00022" summary="the mess">
<created>1536429127582</created>
<option name="number" value="00022" />
<option name="presentableId" value="LOCAL-00022" />
<option name="project" value="LOCAL" />
<updated>1536429127582</updated>
</task>
<task id="LOCAL-00023" summary="charm renames the imports to py - renamed">
<created>1536733349233</created>
<option name="number" value="00023" />
<option name="presentableId" value="LOCAL-00023" />
<option name="project" value="LOCAL" />
<updated>1536733349233</updated>
</task>
<task id="LOCAL-00024" summary="renamed to application_browser">
<created>1536734042101</created>
<option name="number" value="00024" />
<option name="presentableId" value="LOCAL-00024" />
<option name="project" value="LOCAL" />
<updated>1536734042101</updated>
</task>
<task id="LOCAL-00025" summary="renamed to application_browser">
<created>1536734080399</created>
<option name="number" value="00025" />
<option name="presentableId" value="LOCAL-00025" />
<option name="project" value="LOCAL" />
<updated>1536734080399</updated>
</task>
<task id="LOCAL-00026" summary="refactor to import modules from application_browser">
<created>1536734107278</created>
<option name="number" value="00026" />
<option name="presentableId" value="LOCAL-00026" />
<option name="project" value="LOCAL" />
<updated>1536734107278</updated>
</task>
<task id="LOCAL-00027" summary="refactor naming">
<created>1536740355223</created>
<option name="number" value="00027" />
<option name="presentableId" value="LOCAL-00027" />
<option name="project" value="LOCAL" />
<updated>1536740355223</updated>
</task>
<task id="LOCAL-00028" summary="refactor naming">
<created>1536740428541</created>
<option name="number" value="00028" />
<option name="presentableId" value="LOCAL-00028" />
<option name="project" value="LOCAL" />
<updated>1536740428541</updated>
</task>
<task id="LOCAL-00029" summary="removed application utility&#10;now import from package `application_utility`">
<created>1536755165290</created>
<option name="number" value="00029" />
<option name="presentableId" value="LOCAL-00029" />
<option name="project" value="LOCAL" />
<updated>1536755165290</updated>
</task>
<task id="LOCAL-00030" summary="the mess">
<created>1536755180580</created>
<option name="number" value="00030" />
<option name="presentableId" value="LOCAL-00030" />
<option name="project" value="LOCAL" />
<updated>1536755180580</updated>
</task>
<task id="LOCAL-00031" summary="removed application settings from preferences">
<created>1536755298128</created>
<option name="number" value="00031" />
<option name="presentableId" value="LOCAL-00031" />
<option name="project" value="LOCAL" />
<updated>1536755298128</updated>
</task>
<task id="LOCAL-00032" summary="fix manjaro_hello.py">
<created>1536759081083</created>
<option name="number" value="00032" />
<option name="presentableId" value="LOCAL-00032" />
<option name="project" value="LOCAL" />
<updated>1536759081083</updated>
</task>
<task id="LOCAL-00033" summary="conflict?">
<created>1536759713291</created>
<option name="number" value="00033" />
<option name="presentableId" value="LOCAL-00033" />
<option name="project" value="LOCAL" />
<updated>1536759713291</updated>
</task>
<task id="LOCAL-00034" summary="why is this only sometimes">
<created>1536762438800</created>
<option name="number" value="00034" />
<option name="presentableId" value="LOCAL-00034" />
<option name="project" value="LOCAL" />
<updated>1536762438800</updated>
</task>
<task id="LOCAL-00035" summary="refactor on_applications_clicked">
<created>1536762559794</created>
<option name="number" value="00035" />
<option name="presentableId" value="LOCAL-00035" />
<option name="project" value="LOCAL" />
<updated>1536762559794</updated>
</task>
<task id="LOCAL-00036" summary="refactor initialize">
<created>1536762794077</created>
<option name="number" value="00036" />
<option name="presentableId" value="LOCAL-00036" />
<option name="project" value="LOCAL" />
<updated>1536762794077</updated>
</task>
<task id="LOCAL-00037" summary="fix signal error">
<created>1536764417230</created>
<option name="number" value="00037" />
<option name="presentableId" value="LOCAL-00037" />
<option name="project" value="LOCAL" />
<updated>1536764417230</updated>
</task>
<task id="LOCAL-00038" summary="debugging on getObject error">
<created>1536764914803</created>
<option name="number" value="00038" />
<option name="presentableId" value="LOCAL-00038" />
<option name="project" value="LOCAL" />
<updated>1536764914803</updated>
</task>
<task id="LOCAL-00039" summary="debugging getObj error">
<created>1536765243062</created>
<option name="number" value="00039" />
<option name="presentableId" value="LOCAL-00039" />
<option name="project" value="LOCAL" />
<updated>1536765243062</updated>
</task>
<task id="LOCAL-00040" summary="debugging getObj error">
<created>1536765504956</created>
<option name="number" value="00040" />
<option name="presentableId" value="LOCAL-00040" />
<option name="project" value="LOCAL" />
<updated>1536765504956</updated>
</task>
<task id="LOCAL-00041" summary="refactor fil to file">
<created>1536765540320</created>
<option name="number" value="00041" />
<option name="presentableId" value="LOCAL-00041" />
<option name="project" value="LOCAL" />
<updated>1536765540320</updated>
</task>
<task id="LOCAL-00042" summary="refactor to eliminate shadow">
<created>1536765638966</created>
<option name="number" value="00042" />
<option name="presentableId" value="LOCAL-00042" />
<option name="project" value="LOCAL" />
<updated>1536765638966</updated>
</task>
<task id="LOCAL-00043" summary="debugging AttributeError on get_object which exist">
<created>1536765831882</created>
<option name="number" value="00043" />
<option name="presentableId" value="LOCAL-00043" />
<option name="project" value="LOCAL" />
<updated>1536765831882</updated>
</task>
<task id="LOCAL-00044" summary="debugging get_object error">
<created>1536767498224</created>
<option name="number" value="00044" />
<option name="presentableId" value="LOCAL-00044" />
<option name="project" value="LOCAL" />
<updated>1536767498224</updated>
</task>
<task id="LOCAL-00045" summary="debugging get_object error">
<created>1536767653840</created>
<option name="number" value="00045" />
<option name="presentableId" value="LOCAL-00045" />
<option name="project" value="LOCAL" />
<updated>1536767653840</updated>
</task>
<task id="LOCAL-00046" summary="debugging get_object returning None on valid object">
<created>1536767721691</created>
<option name="number" value="00046" />
<option name="presentableId" value="LOCAL-00046" />
<option name="project" value="LOCAL" />
<updated>1536767721691</updated>
</task>
<task id="LOCAL-00047" summary="debugging get_object returning None on valid object">
<created>1536770497272</created>
<option name="number" value="00047" />
<option name="presentableId" value="LOCAL-00047" />
<option name="project" value="LOCAL" />
<updated>1536770497272</updated>
</task>
<task id="LOCAL-00048" summary="debugging get_object returning None on valid object">
<created>1536770929972</created>
<option name="number" value="00048" />
<option name="presentableId" value="LOCAL-00048" />
<option name="project" value="LOCAL" />
<updated>1536770929972</updated>
</task>
<task id="LOCAL-00049" summary="doh! default manjaro-hello does not contain the appBrowser button">
<created>1536820041782</created>
<option name="number" value="00049" />
<option name="presentableId" value="LOCAL-00049" />
<option name="project" value="LOCAL" />
<updated>1536820041782</updated>
</task>
<task id="LOCAL-00050" summary="doh! default manjaro-hello does not contain the appBrowser button">
<created>1536820124591</created>
<option name="number" value="00050" />
<option name="presentableId" value="LOCAL-00050" />
<option name="project" value="LOCAL" />
<updated>1536820124594</updated>
</task>
<task id="LOCAL-00051" summary="reorder lines">
<created>1536841615043</created>
<option name="number" value="00051" />
<option name="presentableId" value="LOCAL-00051" />
<option name="project" value="LOCAL" />
<updated>1536841615043</updated>
</task>
<option name="localTasksCounter" value="52" />
<servers />
</component>
<component name="ToolWindowManager">
<frame x="1991" y="21" width="1398" height="965" extended-state="0" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.2581361" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" weight="0.32893157" />
<window_info anchor="bottom" id="Run" order="2" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="8" />
<window_info anchor="bottom" id="Database Changes" order="9" show_stripe_button="false" />
<window_info anchor="bottom" id="Terminal" order="10" visible="true" weight="0.32893157" />
<window_info anchor="bottom" id="Python Console" order="11" weight="0.32893157" />
<window_info anchor="bottom" id="Event Log" order="12" side_tool="true" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="SciView" order="3" />
<window_info anchor="right" id="Database" order="4" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="split classes" />
<MESSAGE value="commit" />
<MESSAGE value="expand/collapse group on double click" />
<MESSAGE value="charm renames the imports to py - renamed" />
<MESSAGE value="renamed to application_browser" />
<MESSAGE value="refactor to import modules from application_browser" />
<MESSAGE value="refactor naming" />
<MESSAGE value="removed application utility&#10;now import from package `application_utility`" />
<MESSAGE value="the mess" />
<MESSAGE value="removed application settings from preferences" />
<MESSAGE value="fix manjaro_hello.py" />
<MESSAGE value="conflict?" />
<MESSAGE value="why is this only sometimes" />
<MESSAGE value="refactor on_applications_clicked" />
<MESSAGE value="refactor initialize" />
<MESSAGE value="fix signal error" />
<MESSAGE value="debugging on getObject error" />
<MESSAGE value="debugging getObj error" />
<MESSAGE value="refactor fil to file" />
<MESSAGE value="refactor to eliminate shadow" />
<MESSAGE value="debugging AttributeError on get_object which exist" />
<MESSAGE value="debugging get_object error" />
<MESSAGE value="debugging get_object returning None on valid object" />
<MESSAGE value="doh! default manjaro-hello does not contain the appBrowser button" />
<MESSAGE value="reorder lines" />
<option name="LAST_COMMIT_MESSAGE" value="reorder lines" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" suspend="THREAD" type="python-line">
<url>file://$PROJECT_DIR$/src/app-utility</url>
<line>59</line>
<option name="timeStamp" value="1" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/app-utility" />
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="45">
<caret line="3" column="5" selection-start-line="3" selection-start-column="5" selection-end-line="3" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/data/default.json" />
<entry file="file://$PROJECT_DIR$/src/install-alone.py" />
<entry file="file://$PROJECT_DIR$/src/testConfigClass.py" />
<entry file="file://$PROJECT_DIR$/src/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="27" lean-forward="true" selection-start-column="27" selection-end-column="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/browser/exceptions.py" />
<entry file="file://$PROJECT_DIR$/src/plugins/__init__.py" />
<entry file="file://$PROJECT_DIR$/data/browser-prefs.json" />
<entry file="file://$PROJECT_DIR$/data/advanced.json" />
<entry file="file://$PROJECT_DIR$/src/browser/browser_base_config.py" />
<entry file="file://$PROJECT_DIR$/src/browser/browser_config.py" />
<entry file="file://$PROJECT_DIR$/src/browser/alpm.py" />
<entry file="file://$PROJECT_DIR$/src/browser/hello_config.py" />
<entry file="file://$PROJECT_DIR$/src/browser/iso_config.py" />
<entry file="file://$PROJECT_DIR$/src/browser/stand_alone_config.py" />
<entry file="file://$PROJECT_DIR$/src/browser/data.py" />
<entry file="file://$PROJECT_DIR$/src/browser/__init__.py" />
<entry file="file://$PROJECT_DIR$/src/browser/browser.py" />
<entry file="file://$PROJECT_DIR$/data/preferences.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="330">
<caret line="22" column="3" selection-start-line="22" selection-start-column="3" selection-end-line="22" selection-end-column="3" />
</state>
</provider>
</entry>
<entry file="file:///usr/lib/python3.7/site-packages/application_utility/browser/hello_config.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="330">
<caret line="27" selection-start-line="27" selection-end-line="27" />
</state>
</provider>
</entry>
<entry file="file:///usr/lib/python3.7/site-packages/application_utility/browser/config.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="169">
<caret line="16" selection-start-line="16" selection-end-line="16" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/ui/manjaro-hello.glade">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="457">
<caret line="545" column="19" lean-forward="true" selection-start-line="545" selection-start-column="19" selection-end-line="545" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/manjaro_hello.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1590">
<caret line="106" column="27" selection-start-line="106" selection-start-column="27" selection-end-line="106" selection-end-column="27" />
<folding>
<element signature="e#24#38#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
</project>

View File

@ -1,24 +1,24 @@
{
"default_locale": "en",
"autostart_path": "~/.config/autostart/manjaro-hello.desktop",
"data_path": "/usr/share/manjaro-hello/data/",
"desktop_path": "/usr/share/applications/manjaro-hello.desktop",
"installer_path": "/usr/bin/calamares",
"live_path": "/run/miso/bootmnt/manjaro",
"locale_path": "/usr/share/locale/",
"logo_path": "/usr/share/icons/hicolor/64x64/apps/manjaro.png",
"save_path": "~/.config/manjaro-hello.json",
"ui_path": "/usr/share/manjaro-hello/ui/manjaro-hello.glade",
"urls": {
"development": "https://gitlab.manjaro.org",
"chat": "https://kiwiirc.com/client/irc.freenode.net/?nick=manjaro-web|?#manjaro",
"donate": "https://manjaro.org/donate",
"facebook": "https://www.facebook.com/ManjaroLinux",
"forum": "https://forum.manjaro.org",
"google+": "https://plus.google.com/118244873957924966264",
"mailling": "https://lists.manjaro.org/cgi-bin/mailman/listinfo",
"reddit": "https://www.reddit.com/r/ManjaroLinux",
"twitter": "https://twitter.com/ManjaroLinux",
"wiki": "https://wiki.manjaro.org"
}
"default_locale": "en",
"autostart_path": "~/.config/autostart/manjaro-hello.desktop",
"data_path": "/usr/share/manjaro-hello/data/",
"desktop_path": "/usr/share/applications/manjaro-hello.desktop",
"installer_path": "/usr/bin/calamares",
"live_path": "/run/miso/bootmnt/manjaro",
"locale_path": "/usr/share/locale/",
"logo_path": "/usr/share/icons/hicolor/64x64/apps/manjaro.png",
"save_path": "~/.config/manjaro-hello.json",
"ui_path": "/usr/share/manjaro-hello/ui/manjaro-hello.glade",
"urls": {
"development": "https://gitlab.manjaro.org",
"chat": "https://kiwiirc.com/client/irc.freenode.net/?nick=manjaro-web|?#manjaro",
"donate": "https://manjaro.org/donate",
"facebook": "https://www.facebook.com/ManjaroLinux",
"forum": "https://forum.manjaro.org",
"google+": "https://plus.google.com/118244873957924966264",
"mailling": "https://lists.manjaro.org/cgi-bin/mailman/listinfo",
"reddit": "https://www.reddit.com/r/ManjaroLinux",
"twitter": "https://twitter.com/ManjaroLinux",
"wiki": "https://wiki.manjaro.org"
}
}

View File

@ -0,0 +1 @@
__all__ = ["manjaro_hello"]

View File

@ -1,21 +1,34 @@
#!/usr/bin/env python3
import gettext
import gi
import json
import locale
import logging
import os
import subprocess
import sys
import webbrowser
import gi
try:
from application_utility.browser.application_browser import ApplicationBrowser
from application_utility.browser.exceptions import NoAppInIsoError
from application_utility.browser.hello_config import HelloConfig
APPS_PLUGIN = True
except ModuleNotFoundError as e:
APPS_PLUGIN = False
print(f"Warning: Application Browser plugin not found : {e}")
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, GdkPixbuf
class Hello():
class Hello(Gtk.Window):
"""Hello"""
def __init__(self):
Gtk.Window.__init__(self, title="Manjaro Hello", border_width=6)
self.app = "manjaro-hello"
self.dev = "--dev" in sys.argv # Dev mode activated ?
@ -23,12 +36,11 @@ class Hello():
if self.dev:
self.preferences = read_json("data/preferences.json")
self.preferences["data_path"] = "data/"
self.preferences["desktop_path"] = os.getcwd() + "/{}.desktop".format(self.app)
self.preferences["desktop_path"] = os.getcwd() + f"/{self.app}.desktop"
self.preferences["locale_path"] = "locale/"
self.preferences["ui_path"] = "ui/{}.glade".format(self.app)
self.preferences["ui_path"] = f"ui/{self.app}.glade"
else:
self.preferences = read_json("/usr/share/{}/data/preferences.json".format(self.app))
self.preferences = read_json(f"/usr/share/{self.app}/data/preferences.json")
# Get saved infos
self.save = read_json(self.preferences["save_path"])
if not self.save:
@ -55,7 +67,7 @@ class Hello():
for widget in self.builder.get_object("homepage").get_children():
if isinstance(widget, Gtk.Button) and \
widget.get_image_position() is Gtk.PositionType.RIGHT:
widget.get_image_position() is Gtk.PositionType.RIGHT:
img = Gtk.Image.new_from_file(
self.preferences["data_path"] + "img/external-link.png")
img.set_margin_left(2)
@ -84,10 +96,17 @@ class Hello():
self.builder.get_object("autostart").set_active(self.autostart)
# Live systems
if os.path.exists(self.preferences["live_path"]) and \
os.path.isfile(self.preferences["installer_path"]):
if os.path.exists(self.preferences["live_path"]) and os.path.isfile(self.preferences["installer_path"]):
self.builder.get_object("installlabel").set_visible(True)
self.builder.get_object("install").set_visible(True)
# Installed systems
else:
if APPS_PLUGIN:
conf = HelloConfig(application="manjaro-hello")
app_browser = ApplicationBrowser(conf, self)
# create page install Applications
self.builder.get_object("stack").add_named(app_browser, "appBrowserpage")
self.builder.get_object("appBrowser").set_visible(True)
self.window.show()
@ -115,24 +134,24 @@ class Hello():
else:
return self.preferences["default_locale"]
def set_locale(self, locale):
def set_locale(self, use_locale):
"""Set locale of ui and pages.
:param locale: locale to use
:type locale: str
:param use_locale: locale to use
:type use_locale: str
"""
try:
translation = gettext.translation(self.app, self.preferences[
"locale_path"], [locale], fallback=True)
"locale_path"], [use_locale], fallback=True)
translation.install()
except OSError:
return
self.save["locale"] = locale
self.save["locale"] = use_locale
# Real-time locale changing
elts = {
"comments": { "aboutdialog"},
"comments": {"aboutdialog"},
"label": {
"autostartlabel",
"development",
@ -193,14 +212,14 @@ class Hello():
i3_config = fix_path("~/.i3/config")
if os.path.isfile(i3_config):
i3_autostart = "exec --no-startup-id " + self.app
with open(i3_config, "r+") as fil:
content = fil.read()
fil.seek(0)
with open(i3_config, "r+") as file:
content = file.read()
file.seek(0)
if autostart:
fil.write(content.replace("#" + i3_autostart, i3_autostart))
file.write(content.replace("#" + i3_autostart, i3_autostart))
else:
fil.write(content.replace(i3_autostart, "#" + i3_autostart))
fil.truncate()
file.write(content.replace(i3_autostart, "#" + i3_autostart))
file.truncate()
self.autostart = autostart
except OSError as error:
print(error)
@ -215,7 +234,7 @@ class Hello():
filename = self.preferences["data_path"] + "pages/{}/{}".format(self.save["locale"], name)
if not os.path.isfile(filename):
filename = self.preferences["data_path"] + \
"pages/{}/{}".format(self.preferences["default_locale"], name)
"pages/{}/{}".format(self.preferences["default_locale"], name)
try:
with open(filename, "r") as fil:
return fil.read()
@ -238,9 +257,13 @@ class Hello():
dialog = self.builder.get_object("aboutdialog")
dialog.run()
dialog.hide()
elif name == "appBrowser":
# or use only "on_btn_clicked" ?
self.builder.get_object("home").set_sensitive(not name == "home")
self.builder.get_object("stack").set_visible_child_name(name + "page")
def on_btn_clicked(self, btn):
"""Event for clicked button."""
"""Event for applications button."""
name = btn.get_name()
self.builder.get_object("home").set_sensitive(not name == "home")
self.builder.get_object("stack").set_visible_child_name(name + "page")
@ -296,14 +319,15 @@ def write_json(path, content):
except OSError as error:
print(error)
def get_lsb_infos():
"""Read informations from the lsb-release file.
:return: args from lsb-release file
:rtype: dict"""
lsb = {}
try:
with open("/etc/lsb-release") as fil:
for line in fil:
with open("/etc/lsb-release") as lsb_release:
for line in lsb_release:
if "=" in line:
var, arg = line.rstrip().split("=")
if var.startswith("DISTRIB_"):
@ -312,11 +336,14 @@ def get_lsb_infos():
arg = arg[1:-1]
if arg:
lsb[var] = arg
except OSError as error:
except (OSError, KeyError) as error:
print(error)
return 'not Manjaro', '0.0'
return lsb["CODENAME"], lsb["RELEASE"]
if __name__ == "__main__":
Hello()
logging.basicConfig(level=logging.DEBUG)
hello = Hello()
hello.connect("destroy", Gtk.main_quit)
Gtk.main()

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.1 -->
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkImage" id="homeicon">
@ -19,6 +19,99 @@
<property name="default_height">500</property>
<property name="has_resize_grip">True</property>
<signal name="delete-event" handler="on_delete_window" swapped="no"/>
<child type="titlebar">
<object class="GtkHeaderBar" id="headerbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="title">Manjaro Hello</property>
<property name="show_close_button">True</property>
<child>
<object class="GtkButton" id="home">
<property name="name">home</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Home</property>
<property name="image">homeicon</property>
<signal name="clicked" handler="on_btn_clicked" swapped="no"/>
</object>
</child>
<child>
<object class="GtkComboBoxText" id="languages">
<property name="visible">True</property>
<property name="can_focus">False</property>
<items>
<item id="sq">Albanian</item>
<item id="ar">Arabic</item>
<item id="ast-ES">Asturian (Spain)</item>
<item id="be">Belarusian</item>
<item id="bg">Bulgarian</item>
<item id="ca">Catalan</item>
<item id="zh-CN">Chinese (China)</item>
<item id="zh-TW">Chinese (Taiwan)</item>
<item id="hr">Croatian</item>
<item id="cs">Czech</item>
<item id="da">Danish</item>
<item id="nl">Dutch</item>
<item id="en">English</item>
<item id="fi">Finnish</item>
<item id="fr">French</item>
<item id="de">German</item>
<item id="ka">Georgian</item>
<item id="el-GR">Greek (Greece)</item>
<item id="he">Hebrew</item>
<item id="hi-IN">Hindi (India)</item>
<item id="hu">Hungarian</item>
<item id="is">Icelandic</item>
<item id="id-ID">Indonesian (Indonesia)</item>
<item id="it">Italian</item>
<item id="ja">Japanese</item>
<item id="ko-KR">Korean (Korea)</item>
<item id="lt">Lithuanian</item>
<item id="nb">Norwegian Bokmål</item>
<item id="fa-IR">Persian (Iran)</item>
<item id="pl">Polish</item>
<item id="pt-BR">Portuguese (Brazil)</item>
<item id="pt-PT">Portuguese (Portugal)</item>
<item id="ro-RO">Romanian (Romania)</item>
<item id="ru">Russian</item>
<item id="sk">Slovak</item>
<item id="sl-SI">Slovenian (Slovenia)</item>
<item id="sl">Slovenian</item>
<item id="es">Spanish</item>
<item id="sr-RS">Serbian (Serbia)</item>
<item id="sr">Serbian</item>
<item id="sv">Swedish</item>
<item id="th">Thai</item>
<item id="tr-TR">Turkish (Turkey)</item>
<item id="tr">Turkish</item>
<item id="uk">Ukrainian</item>
<item id="vi-VN">Vietnamese (Viet Nam)</item>
</items>
<signal name="changed" handler="on_languages_changed" swapped="no"/>
</object>
<packing>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="about">
<property name="name">about</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">About</property>
<property name="image">iconabout</property>
<signal name="clicked" handler="on_action_clicked" swapped="no"/>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child>
<object class="GtkStack" id="stack">
<property name="visible">True</property>
@ -427,6 +520,20 @@ We, the Manjaro Developers, hope that you will enjoy using Manjaro as much as we
<property name="top_attach">8</property>
</packing>
</child>
<child>
<object class="GtkButton" id="appBrowser">
<property name="label" translatable="yes">Applications</property>
<property name="name">appBrowser</property>
<property name="can_focus">False</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Common application selection</property>
<signal name="clicked" handler="on_btn_clicked" swapped="no"/>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">8</property>
</packing>
</child>
<child>
<placeholder/>
</child>
@ -446,99 +553,6 @@ We, the Manjaro Developers, hope that you will enjoy using Manjaro as much as we
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="headerbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="title">Manjaro Hello</property>
<property name="show_close_button">True</property>
<child>
<object class="GtkButton" id="home">
<property name="name">home</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Home</property>
<property name="image">homeicon</property>
<signal name="clicked" handler="on_btn_clicked" swapped="no"/>
</object>
</child>
<child>
<object class="GtkComboBoxText" id="languages">
<property name="visible">True</property>
<property name="can_focus">False</property>
<items>
<item id="sq">Albanian</item>
<item id="ar">Arabic</item>
<item id="ast-ES">Asturian (Spain)</item>
<item id="be">Belarusian</item>
<item id="bg">Bulgarian</item>
<item id="ca">Catalan</item>
<item id="zh-CN">Chinese (China)</item>
<item id="zh-TW">Chinese (Taiwan)</item>
<item id="hr">Croatian</item>
<item id="cs">Czech</item>
<item id="da">Danish</item>
<item id="nl">Dutch</item>
<item id="en">English</item>
<item id="fi">Finnish</item>
<item id="fr">French</item>
<item id="de">German</item>
<item id="ka">Georgian</item>
<item id="el-GR">Greek (Greece)</item>
<item id="he">Hebrew</item>
<item id="hi-IN">Hindi (India)</item>
<item id="hu">Hungarian</item>
<item id="is">Icelandic</item>
<item id="id-ID">Indonesian (Indonesia)</item>
<item id="it">Italian</item>
<item id="ja">Japanese</item>
<item id="ko-KR">Korean (Korea)</item>
<item id="lt">Lithuanian</item>
<item id="nb">Norwegian Bokmål</item>
<item id="fa-IR">Persian (Iran)</item>
<item id="pl">Polish</item>
<item id="pt-BR">Portuguese (Brazil)</item>
<item id="pt-PT">Portuguese (Portugal)</item>
<item id="ro-RO">Romanian (Romania)</item>
<item id="ru">Russian</item>
<item id="sk">Slovak</item>
<item id="sl-SI">Slovenian (Slovenia)</item>
<item id="sl">Slovenian</item>
<item id="es">Spanish</item>
<item id="sr-RS">Serbian (Serbia)</item>
<item id="sr">Serbian</item>
<item id="sv">Swedish</item>
<item id="th">Thai</item>
<item id="tr-TR">Turkish (Turkey)</item>
<item id="tr">Turkish</item>
<item id="uk">Ukrainian</item>
<item id="vi-VN">Vietnamese (Viet Nam)</item>
</items>
<signal name="changed" handler="on_languages_changed" swapped="no"/>
</object>
<packing>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="about">
<property name="name">about</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">About</property>
<property name="image">iconabout</property>
<signal name="clicked" handler="on_action_clicked" swapped="no"/>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkAboutDialog" id="aboutdialog">
<property name="can_focus">False</property>
@ -586,6 +600,9 @@ Stéphane
Андрей Раугас</property>
<property name="logo_icon_name"/>
<property name="license_type">gpl-3-0</property>
<child>
<placeholder/>
</child>
<child internal-child="vbox">
<object class="GtkBox">
<property name="can_focus">True</property>
@ -608,8 +625,5 @@ Stéphane
</child>
</object>
</child>
<child>
<placeholder/>
</child>
</object>
</interface>