Skip to content

Commit

Permalink
Release/2.0.0 (#177)
Browse files Browse the repository at this point in the history
Merge RC Candidate
* Split plugin loading
* Make top right buttons smaller
* Update codeql to current actions versions
* Bump up version to 2.0.0
* Enable USE_LOCAL_CACHE_FOR_LOCAL_PKG_PATH feature flag for quicker loading
* Add title icon for menu
* Revert to old install mechanism for plugin test
* Paste only plaintext in text browser
* Fix some message texts
* Update screenshots and readme
* Remove ui title frame
* Remove file editor path check for system cmds
* Fix profile not used in conan install bug
  • Loading branch information
goszpeti authored Apr 25, 2023
1 parent 348efa4 commit 7529008
Show file tree
Hide file tree
Showing 27 changed files with 199 additions and 96 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
Expand All @@ -50,7 +50,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
uses: github/codeql-action/autobuild@v2

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
Expand All @@ -64,4 +64,4 @@ jobs:
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v2
1 change: 0 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ on:
pull_request:
branches:
- master
- 'release/**'
workflow_dispatch:

jobs:
Expand Down
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ The goal of this project is to provide a standalone Graphical User Interface (GU

It is end-user oriented and focuses on using packages, rather then developing them. It can be used on Windows and Linux x64 platforms.

#### Application Link Grid
#### Quicklaunch for Applications in Conan Packages
# <img src="https://raw.githubusercontent.com/goszpeti/conan_app_launcher/master/doc/screenshot.png" width="512">

#### Local Package Manager
Expand Down Expand Up @@ -60,6 +60,8 @@ Conan Config
- view and edit your remotes - with multilogin to the same arifactory server for multiple remotes
- see the most important paths and config at one glance

Plugin Mechanism
- All views are now plugins, which can be extended by the user

## How to install?

Expand Down Expand Up @@ -90,6 +92,7 @@ After checkout use the command:
`pip install .`

## Running

Execute `conan-app-launcher`, if the Python "scripts" folder is on your system path, or look it up manually in the site-packages folder.
You can also assign its icon to it from the site packages folder in conan_app_launcher/assets/icons/icon.ico.

Expand Down
2 changes: 1 addition & 1 deletion doc/example_plugin/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,6 @@
plugin_dir_path = Path(cal_example_plugin.__file__).parent
plugin_file_path = str(plugin_dir_path / "plugin.ini")
plugin_descr = PluginDescription("My Example Plugin", VERSION, AUTHOR, f"{plugin_dir_path}/about.svg",
".", "SamplePluginView", DESCRIPTION, True, "<2")
".", "SamplePluginView", DESCRIPTION, True, "<2")
PluginFile.write(plugin_file_path, [plugin_descr])
PluginFile.register(plugin_file_path)
Binary file modified doc/screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified doc/screenshot_conan_conf.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified doc/screenshot_conan_search.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified doc/screenshot_pkg_explorer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

# Package meta-data.
NAME = "conan-app-launcher"
VERSION = "2.0.0-beta7"
VERSION = "2.0.0"
DESCRIPTION = "App Launcher and Package Explorer for Conan"
URL = "https://github.com/goszpeti/conan_app_launcher"
AUTHOR = "Péter Gosztolya and Contributors"
Expand Down
2 changes: 1 addition & 1 deletion src/conan_app_launcher/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@

# Feature flags
SEARCH_APP_VERSIONS_IN_LOCAL_CACHE = True # get versions directly from the custom cache
USE_LOCAL_CACHE_FOR_LOCAL_PKG_PATH = False # get pkg paths directly from the custom cache TODO can't handle options
USE_LOCAL_CACHE_FOR_LOCAL_PKG_PATH = True # get pkg paths directly from the custom cache TODO can't handle options
# use conan worker to also search for the package path - works in a addition to USE_LOCAL_CACHE_FOR_LOCAL_PKG_PATH and also installs
USE_CONAN_WORKER_FOR_LOCAL_PKG_PATH_AND_INSTALL = True
AUTOCLOSE_SIDE_MENU = False
Expand Down
2 changes: 1 addition & 1 deletion src/conan_app_launcher/conan_wrapper/conanV1.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ def install_reference(self, conan_ref: ConanRef, profile="", conan_settings: Con
Logger().info(install_message)
profile_names = None
if profile:
profile_names = [profile_names]
profile_names = [profile]
try:
infos = self._conan.install_reference(
conan_ref, settings=settings_list, options=options_list, update=update, profile_names=profile_names)
Expand Down
2 changes: 1 addition & 1 deletion src/conan_app_launcher/conan_wrapper/unified_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ def install_package(self, conan_ref: ConanRef, package: ConanPkg, update=True) -
installed_id, package_path = self.install_reference(
conan_ref, update=update, conan_settings=settings, conan_options=options)
if installed_id != package_id:
Logger().warning("Installed {installed_id} instead of selected {package_id}."
Logger().warning(f"Installed {installed_id} instead of selected {package_id}."
"This can happen, if there transitive settings changed in comparison to the build time.")
return installed_id, package_path
except ConanException as e:
Expand Down
12 changes: 6 additions & 6 deletions src/conan_app_launcher/ui/dialogs/conan_install/conan_install.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,13 +85,13 @@ def load_options(self, conan_full_ref: str):
conan_ref = ""
try:
conan_ref = conan_full_ref.split(":")[0]
loader = AsyncLoader(self)
loader.async_loading(self, self.on_options_query, (conan_ref, ), loading_text="Loading options...")
loader.wait_for_finished()
# TODO: CONAN V2 and make dedicated function from info and default options
default_options = self._default_options
ConanRef.loads(conan_ref)
except Exception:
Logger().warning("Can't determine options of " + conan_ref)
return
loader = AsyncLoader(self)
loader.async_loading(self, self.on_options_query, (conan_ref, ), loading_text="Loading options...")
loader.wait_for_finished()
default_options = self._default_options
# doing this after connecting toggle_auto_install_on_pkg_ref initializes it correctly
for name, value in default_options.items():
item = QTreeWidgetItem(self._ui.options_widget)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,5 @@ def on_browse_clicked(self):
Logger().debug("Can}'t set selected path: {e}.")

def on_save(self):
if Path(self._ui.file_edit.text()).is_file():
app.active_settings.set(FILE_EDITOR_EXECUTABLE, self._ui.file_edit.text())
else:
Logger().warning(f"Path {self._ui.file_edit.text()} is not a file, setting will be discarded.")
app.active_settings.set(FILE_EDITOR_EXECUTABLE, self._ui.file_edit.text())
self.close()
3 changes: 3 additions & 0 deletions src/conan_app_launcher/ui/fluent_window/fluent_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ def __init__(self, title_text: str = "", native_windows_fcns=True):
# clear default strings
# self.ui.page_info_label.setText("")
self.ui.title_label.setText("")
self.ui.title_icon_label.hide()

# initial maximize state
self.set_restore_max_button_state()
Expand Down Expand Up @@ -333,8 +334,10 @@ def toggle_left_menu(self):
# hide title
if maximize:
self.ui.title_label.setText(self.title_text)
self.ui.title_icon_label.show()
else:
self.ui.title_label.setText("")
self.ui.title_icon_label.hide()

# hide menu button texts
# name, (button, _) in self.page_entries.items():
Expand Down
120 changes: 89 additions & 31 deletions src/conan_app_launcher/ui/fluent_window/fluent_window.ui
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@
<property name="minimumSize">
<size>
<width>0</width>
<height>50</height>
<height>45</height>
</size>
</property>
<property name="maximumSize">
Expand Down Expand Up @@ -283,7 +283,7 @@
<property name="minimumSize">
<size>
<width>55</width>
<height>40</height>
<height>35</height>
</size>
</property>
<property name="text">
Expand All @@ -299,7 +299,7 @@
<property name="minimumSize">
<size>
<width>55</width>
<height>40</height>
<height>35</height>
</size>
</property>
<property name="text">
Expand All @@ -315,7 +315,7 @@
<property name="minimumSize">
<size>
<width>55</width>
<height>40</height>
<height>35</height>
</size>
</property>
<property name="text">
Expand Down Expand Up @@ -942,35 +942,93 @@ li.checked::marker { content: &quot;\2612&quot;; }
<number>0</number>
</property>
<item>
<widget class="QLabel" name="title_label">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<italic>false</italic>
<bold>true</bold>
<stylestrategy>PreferAntialias</stylestrategy>
</font>
</property>
<property name="styleSheet">
<string notr="true">font: bold</string>
</property>
<property name="text">
<string>App Title</string>
</property>
<property name="alignment">
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
</property>
<property name="margin">
<number>0</number>
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="indent">
<number>5</number>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="leftMargin">
<number>4</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="title_icon_label">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>25</width>
<height>25</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>25</width>
<height>25</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap>../../assets/icons/icon.ico</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="title_label">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="font">
<font>
<italic>false</italic>
<bold>true</bold>
<stylestrategy>PreferAntialias</stylestrategy>
</font>
</property>
<property name="styleSheet">
<string notr="true">font: bold</string>
</property>
<property name="text">
<string>App Title</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="margin">
<number>0</number>
</property>
<property name="indent">
<number>5</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
Expand Down
Loading

0 comments on commit 7529008

Please sign in to comment.