diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index c1e18faf55..f71c6e2c29 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -35,6 +35,8 @@ body: label: Version description: What version are you running? Look to AYON Tray options: + - 1.3.1 + - 1.3.0 - 1.2.0 - 1.1.9 - 1.1.8 diff --git a/client/ayon_core/lib/file_transaction.py b/client/ayon_core/lib/file_transaction.py index a502403958..d720ff8d30 100644 --- a/client/ayon_core/lib/file_transaction.py +++ b/client/ayon_core/lib/file_transaction.py @@ -1,15 +1,13 @@ +import concurrent.futures import os import logging -import sys import errno +from concurrent.futures import ThreadPoolExecutor, Future +from typing import List, Optional from ayon_core.lib import create_hard_link -# this is needed until speedcopy for linux is fixed -if sys.platform == "win32": - from speedcopy import copyfile -else: - from shutil import copyfile +from speedcopy import copyfile class DuplicateDestinationError(ValueError): @@ -109,41 +107,52 @@ class FileTransaction: self._transfers[dst] = (src, opts) def process(self): - # Backup any existing files - for dst, (src, _) in self._transfers.items(): - self.log.debug("Checking file ... {} -> {}".format(src, dst)) - path_same = self._same_paths(src, dst) - if path_same or not os.path.exists(dst): - continue + with ThreadPoolExecutor(max_workers=8) as executor: + # Submit backup tasks + backup_futures = [ + executor.submit(self._backup_file, dst, src) + for dst, (src, _) in self._transfers.items() + ] + wait_for_future_errors( + executor, backup_futures, logger=self.log) - # Backup original file - # todo: add timestamp or uuid to ensure unique - backup = dst + ".bak" - self._backup_to_original[backup] = dst + # Submit transfer tasks + transfer_futures = [ + executor.submit(self._transfer_file, dst, src, opts) + for dst, (src, opts) in self._transfers.items() + ] + wait_for_future_errors( + executor, transfer_futures, logger=self.log) + + def _backup_file(self, dst, src): + self.log.debug(f"Checking file ... {src} -> {dst}") + path_same = self._same_paths(src, dst) + if path_same or not os.path.exists(dst): + return + + # Backup original file + backup = dst + ".bak" + self._backup_to_original[backup] = dst + self.log.debug(f"Backup existing file: {dst} -> {backup}") + os.rename(dst, backup) + + def _transfer_file(self, dst, src, opts): + path_same = self._same_paths(src, dst) + if path_same: self.log.debug( - "Backup existing file: {} -> {}".format(dst, backup)) - os.rename(dst, backup) + f"Source and destination are same files {src} -> {dst}") + return - # Copy the files to transfer - for dst, (src, opts) in self._transfers.items(): - path_same = self._same_paths(src, dst) - if path_same: - self.log.debug( - "Source and destination are same files {} -> {}".format( - src, dst)) - continue + self._create_folder_for_file(dst) - self._create_folder_for_file(dst) + if opts["mode"] == self.MODE_COPY: + self.log.debug(f"Copying file ... {src} -> {dst}") + copyfile(src, dst) + elif opts["mode"] == self.MODE_HARDLINK: + self.log.debug(f"Hardlinking file ... {src} -> {dst}") + create_hard_link(src, dst) - if opts["mode"] == self.MODE_COPY: - self.log.debug("Copying file ... {} -> {}".format(src, dst)) - copyfile(src, dst) - elif opts["mode"] == self.MODE_HARDLINK: - self.log.debug("Hardlinking file ... {} -> {}".format( - src, dst)) - create_hard_link(src, dst) - - self._transferred.append(dst) + self._transferred.append(dst) def finalize(self): # Delete any backed up files @@ -212,3 +221,46 @@ class FileTransaction: return os.stat(src) == os.stat(dst) return src == dst + + +def wait_for_future_errors( + executor: ThreadPoolExecutor, + futures: List[Future], + logger: Optional[logging.Logger] = None): + """For the ThreadPoolExecutor shutdown and cancel futures as soon one of + the workers raises an error as they complete. + + The ThreadPoolExecutor only cancels pending futures on exception but will + still complete those that are running - each which also themselves could + fail. We log all exceptions but re-raise the last exception only. + """ + if logger is None: + logger = logging.getLogger(__name__) + + for future in concurrent.futures.as_completed(futures): + exception = future.exception() + if exception: + # As soon as an error occurs, stop executing more futures. + # Running workers, however, will still be complete, so we also want + # to log those errors if any occurred on them. + executor.shutdown(wait=True, cancel_futures=True) + break + else: + # Futures are completed, no exceptions occurred + return + + # An exception occurred in at least one future. Get exceptions from + # all futures that are done and ended up failing until that point. + exceptions = [] + for future in futures: + if not future.cancelled() and future.done(): + exception = future.exception() + if exception: + exceptions.append(exception) + + # Log any exceptions that occurred in all workers + for exception in exceptions: + logger.error("Error occurred in worker", exc_info=exception) + + # Raise the last exception + raise exceptions[-1] diff --git a/client/ayon_core/pipeline/anatomy/anatomy.py b/client/ayon_core/pipeline/anatomy/anatomy.py index 98bbaa9bdc..9885e383b7 100644 --- a/client/ayon_core/pipeline/anatomy/anatomy.py +++ b/client/ayon_core/pipeline/anatomy/anatomy.py @@ -462,8 +462,8 @@ class Anatomy(BaseAnatomy): Union[Dict[str, str], None]): Local root overrides. """ if not project_name: - return - return ayon_api.get_project_roots_for_site( + return None + return ayon_api.get_project_root_overrides_by_site_id( project_name, get_local_site_id() ) diff --git a/client/ayon_core/plugins/publish/collect_managed_staging_dir.py b/client/ayon_core/plugins/publish/collect_managed_staging_dir.py index 1034b9a716..62b007461a 100644 --- a/client/ayon_core/plugins/publish/collect_managed_staging_dir.py +++ b/client/ayon_core/plugins/publish/collect_managed_staging_dir.py @@ -32,16 +32,16 @@ class CollectManagedStagingDir(pyblish.api.InstancePlugin): label = "Collect Managed Staging Directory" order = pyblish.api.CollectorOrder + 0.4990 - def process(self, instance): + def process(self, instance: pyblish.api.Instance): """ Collect the staging data and stores it to the instance. Args: instance (object): The instance to inspect. """ staging_dir_path = get_instance_staging_dir(instance) - persistance = instance.data.get("stagingDir_persistent", False) + persistence: bool = instance.data.get("stagingDir_persistent", False) - self.log.info(( + self.log.debug( f"Instance staging dir was set to `{staging_dir_path}` " - f"and persistence is set to `{persistance}`" - )) + f"and persistence is set to `{persistence}`" + ) diff --git a/client/ayon_core/plugins/publish/extract_color_transcode.py b/client/ayon_core/plugins/publish/extract_color_transcode.py index 45832bd1e5..3ac04ab1c7 100644 --- a/client/ayon_core/plugins/publish/extract_color_transcode.py +++ b/client/ayon_core/plugins/publish/extract_color_transcode.py @@ -304,7 +304,11 @@ class ExtractOIIOTranscode(publish.Extractor): if collection.holes().indexes: return files_to_convert - frame_str = "{}-{}#".format(frames[0], frames[-1]) + # Get the padding from the collection + # This is the number of digits used in the frame numbers + padding = collection.padding + + frame_str = "{}-{}%0{}d".format(frames[0], frames[-1], padding) file_name = "{}{}{}".format(collection.head, frame_str, collection.tail) diff --git a/client/ayon_core/plugins/publish/integrate_hero_version.py b/client/ayon_core/plugins/publish/integrate_hero_version.py index 2163596864..43f93da293 100644 --- a/client/ayon_core/plugins/publish/integrate_hero_version.py +++ b/client/ayon_core/plugins/publish/integrate_hero_version.py @@ -1,7 +1,11 @@ import os import copy import errno +import itertools import shutil +from concurrent.futures import ThreadPoolExecutor + +from speedcopy import copyfile import clique import pyblish.api @@ -13,6 +17,7 @@ from ayon_api.operations import ( from ayon_api.utils import create_entity_id from ayon_core.lib import create_hard_link, source_hash +from ayon_core.lib.file_transaction import wait_for_future_errors from ayon_core.pipeline.publish import ( get_publish_template_name, OptionalPyblishPluginMixin, @@ -415,11 +420,14 @@ class IntegrateHeroVersion( # Copy(hardlink) paths of source and destination files # TODO should we *only* create hardlinks? # TODO should we keep files for deletion until this is successful? - for src_path, dst_path in src_to_dst_file_paths: - self.copy_file(src_path, dst_path) - - for src_path, dst_path in other_file_paths_mapping: - self.copy_file(src_path, dst_path) + with ThreadPoolExecutor(max_workers=8) as executor: + futures = [ + executor.submit(self.copy_file, src_path, dst_path) + for src_path, dst_path in itertools.chain( + src_to_dst_file_paths, other_file_paths_mapping + ) + ] + wait_for_future_errors(executor, futures) # Update prepared representation etity data with files # and integrate it to server. @@ -648,7 +656,7 @@ class IntegrateHeroVersion( src_path, dst_path )) - shutil.copy(src_path, dst_path) + copyfile(src_path, dst_path) def version_from_representations(self, project_name, repres): for repre in repres: diff --git a/client/ayon_core/tools/publisher/abstract.py b/client/ayon_core/tools/publisher/abstract.py index 4ed91813d3..6d0027d35d 100644 --- a/client/ayon_core/tools/publisher/abstract.py +++ b/client/ayon_core/tools/publisher/abstract.py @@ -1,4 +1,5 @@ from abc import ABC, abstractmethod +from dataclasses import dataclass, asdict from typing import ( Optional, Dict, @@ -28,6 +29,19 @@ if TYPE_CHECKING: from .models import CreatorItem, PublishErrorInfo, InstanceItem +@dataclass +class CommentDef: + """Comment attribute definition.""" + minimum_chars_required: int + + def to_data(self): + return asdict(self) + + @classmethod + def from_data(cls, data): + return cls(**data) + + class CardMessageTypes: standard = None info = "info" @@ -135,6 +149,17 @@ class AbstractPublisherCommon(ABC): pass + @abstractmethod + def get_comment_def(self) -> CommentDef: + """Get comment attribute definition. + + This can define how the Comment field should behave, like having + a minimum amount of required characters before being allowed to + publish. + + """ + pass + class AbstractPublisherBackend(AbstractPublisherCommon): @abstractmethod diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index 98fdda08cf..ef2e122692 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -20,7 +20,8 @@ from .models import ( from .abstract import ( AbstractPublisherBackend, AbstractPublisherFrontend, - CardMessageTypes + CardMessageTypes, + CommentDef, ) @@ -601,3 +602,17 @@ class PublisherController( def _start_publish(self, up_validation): self._publish_model.set_publish_up_validation(up_validation) self._publish_model.start_publish(wait=True) + + def get_comment_def(self) -> CommentDef: + # Take the cached settings from the Create Context + settings = self.get_create_context().get_current_project_settings() + comment_minimum_required_chars: int = ( + settings + .get("core", {}) + .get("tools", {}) + .get("publish", {}) + .get("comment_minimum_required_chars", 0) + ) + return CommentDef( + minimum_chars_required=comment_minimum_required_chars + ) diff --git a/client/ayon_core/tools/publisher/window.py b/client/ayon_core/tools/publisher/window.py index ed5b909a55..dc086a3b48 100644 --- a/client/ayon_core/tools/publisher/window.py +++ b/client/ayon_core/tools/publisher/window.py @@ -245,6 +245,13 @@ class PublisherWindow(QtWidgets.QDialog): show_timer.setInterval(1) show_timer.timeout.connect(self._on_show_timer) + comment_invalid_timer = QtCore.QTimer() + comment_invalid_timer.setSingleShot(True) + comment_invalid_timer.setInterval(2500) + comment_invalid_timer.timeout.connect( + self._on_comment_invalid_timeout + ) + errors_dialog_message_timer = QtCore.QTimer() errors_dialog_message_timer.setInterval(100) errors_dialog_message_timer.timeout.connect( @@ -395,6 +402,7 @@ class PublisherWindow(QtWidgets.QDialog): self._app_event_listener_installed = False self._show_timer = show_timer + self._comment_invalid_timer = comment_invalid_timer self._show_counter = 0 self._window_is_visible = False @@ -823,15 +831,45 @@ class PublisherWindow(QtWidgets.QDialog): self._controller.set_comment(self._comment_input.text()) def _on_validate_clicked(self): - if self._save_changes(False): + if self._validate_comment() and self._save_changes(False): self._set_publish_comment() self._controller.validate() def _on_publish_clicked(self): - if self._save_changes(False): + if self._validate_comment() and self._save_changes(False): self._set_publish_comment() self._controller.publish() + def _validate_comment(self) -> bool: + # Validate comment length + comment_def = self._controller.get_comment_def() + char_count = len(self._comment_input.text().strip()) + if ( + comment_def.minimum_chars_required + and char_count < comment_def.minimum_chars_required + ): + self._overlay_object.add_message( + "Please enter a comment of at least " + f"{comment_def.minimum_chars_required} characters", + message_type="error" + ) + self._invalidate_comment_field() + return False + return True + + def _invalidate_comment_field(self): + self._comment_invalid_timer.start() + self._comment_input.setStyleSheet("border-color: #DD2020") + # Set focus so user can start typing and is pointed towards the field + self._comment_input.setFocus() + self._comment_input.setCursorPosition( + len(self._comment_input.text()) + ) + + def _on_comment_invalid_timeout(self): + # Reset style + self._comment_input.setStyleSheet("") + def _set_footer_enabled(self, enabled): self._save_btn.setEnabled(True) self._reset_btn.setEnabled(True) diff --git a/client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined.codepoints b/client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined-Regular.codepoints similarity index 91% rename from client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined.codepoints rename to client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined-Regular.codepoints index a4451c793a..d5ede9bf32 100644 --- a/client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined.codepoints +++ b/client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined-Regular.codepoints @@ -19,6 +19,7 @@ 21mp e95f 22mp e960 23mp e961 +24fps_select f3f2 24mp e962 2d ef37 2k e963 @@ -27,6 +28,7 @@ 30fps efce 30fps_select efcf 360 e577 +3d ed38 3d_rotation e84d 3g_mobiledata efd0 3g_mobiledata_badge f7f0 @@ -71,6 +73,7 @@ accessibility e84e accessibility_new e92c accessible e914 accessible_forward e934 +accessible_menu f34e account_balance e84f account_balance_wallet e850 account_box e851 @@ -92,6 +95,7 @@ adaptive_audio_mic f4cc adaptive_audio_mic_off f4cb adb e60e add e145 +add_2 f3dd add_a_photo e439 add_ad e72a add_alarm e856 @@ -103,6 +107,8 @@ add_card eb86 add_chart ef3c add_circle e3ba add_circle_outline e3ba +add_column_left f425 +add_column_right f424 add_comment e266 add_diamond f49c add_home f8eb @@ -116,6 +122,8 @@ add_notes e091 add_photo_alternate e43e add_reaction e1d3 add_road ef3b +add_row_above f423 +add_row_below f422 add_shopping_cart e854 add_task f23a add_to_drive e65c @@ -156,6 +164,7 @@ alarm e855 alarm_add e856 alarm_off e857 alarm_on e858 +alarm_pause f35b alarm_smart_wake f6b0 album e019 align_center e356 @@ -230,6 +239,7 @@ area_chart e770 arming_countdown e78a arrow_and_edge f5d7 arrow_back e5c4 +arrow_back_2 f43a arrow_back_ios e5e0 arrow_back_ios_new e2ea arrow_circle_down f181 @@ -247,6 +257,8 @@ arrow_forward_ios e5e1 arrow_insert f837 arrow_left e5de arrow_left_alt ef7d +arrow_menu_close f3d3 +arrow_menu_open f3d2 arrow_or_edge f5d6 arrow_outward f8ce arrow_range f69b @@ -256,14 +268,19 @@ arrow_selector_tool f82f arrow_split ea04 arrow_top_left f72e arrow_top_right f72d +arrow_upload_progress f3f4 +arrow_upload_ready f3f5 arrow_upward e5d8 arrow_upward_alt e986 arrow_warm_up f4b5 +arrows_input f394 arrows_more_down f8ab arrows_more_up f8ac +arrows_output f393 arrows_outward f72c art_track e060 article ef42 +article_person f368 article_shortcut f587 artist e01a aspect_ratio e85b @@ -324,6 +341,7 @@ auto_towing e71e auto_transmission f53f auto_videocam f6c0 autofps_select efdc +automation f421 autopause f6b6 autopay f84b autoplay f6b5 @@ -358,6 +376,7 @@ balcony e58f ballot e172 bar_chart e26b bar_chart_4_bars f681 +bar_chart_off f411 barcode e70b barcode_reader f85c barcode_scanner e70c @@ -382,6 +401,20 @@ battery_6_bar f0a1 battery_80 f0a0 battery_90 f0a1 battery_alert e19c +battery_android_0 f30d +battery_android_1 f30c +battery_android_2 f30b +battery_android_3 f30a +battery_android_4 f309 +battery_android_5 f308 +battery_android_6 f307 +battery_android_alert f306 +battery_android_bolt f305 +battery_android_full f304 +battery_android_plus f303 +battery_android_question f302 +battery_android_share f301 +battery_android_shield f300 battery_change f7eb battery_charging_20 f0a2 battery_charging_30 f0a3 @@ -413,7 +446,7 @@ bed efdf bedroom_baby efe0 bedroom_child efe1 bedroom_parent efe2 -bedtime ef44 +bedtime f159 bedtime_off eb76 beenhere e52d bento f1f4 @@ -445,6 +478,8 @@ blur_medium e84c blur_off e3a4 blur_on e3a5 blur_short e8cf +boat_bus f36d +boat_railway f36c body_fat e098 body_system e099 bolt ea0b @@ -454,10 +489,13 @@ book_2 f53e book_3 f53d book_4 f53c book_5 f53b +book_6 f3df book_online f217 +book_ribbon f3e7 bookmark e8e7 bookmark_add e598 bookmark_added e599 +bookmark_bag f410 bookmark_border e8e7 bookmark_check f457 bookmark_flag f456 @@ -466,6 +504,7 @@ bookmark_manager f7b1 bookmark_remove e59a bookmark_star f454 bookmarks e98b +books_movies_and_music ef82 border_all e228 border_bottom e229 border_clear e22a @@ -478,6 +517,7 @@ border_right e230 border_style e231 border_top e232 border_vertical e233 +borg f40d bottom_app_bar e730 bottom_drawer e72d bottom_navigation e98c @@ -496,6 +536,7 @@ breakfast_dining ea54 breaking_news ea08 breaking_news_alt_1 f0ba breastfeeding f856 +brick f388 brightness_1 e3fa brightness_2 f036 brightness_3 e3a8 @@ -529,6 +570,7 @@ build_circle ef48 bungalow e591 burst_mode e43c bus_alert e98f +bus_railway f36b business e7ee business_center eb3f business_chip f84c @@ -579,9 +621,26 @@ cancel_presentation e0e9 cancel_schedule_send ea39 candle f588 candlestick_chart ead4 +cannabis f2f3 captive_portal f728 capture f727 car_crash ebf2 +car_defrost_left f344 +car_defrost_low_left f343 +car_defrost_low_right f342 +car_defrost_mid_low_left f341 +car_defrost_mid_right f340 +car_defrost_right f33f +car_fan_low_left f33e +car_fan_low_mid_left f33d +car_fan_low_right f33c +car_fan_mid_left f33b +car_fan_mid_low_right f33a +car_fan_mid_right f339 +car_fan_recirculate f338 +car_gear f337 +car_lock f336 +car_mirror_heat f335 car_rental ea55 car_repair ea56 car_tag f4e3 @@ -591,6 +650,7 @@ card_travel e8f8 cardio_load f4b9 cardiology e09c cards e991 +cards_star f375 carpenter f1f8 carry_on_bag eb08 carry_on_bag_checked eb0b @@ -605,6 +665,7 @@ cast_pause f5f0 cast_warning f5ef castle eab1 category e574 +category_search f437 celebration ea65 cell_merge f82e cell_tower ebba @@ -627,6 +688,7 @@ chat_bubble_outline e0cb chat_error f7ac chat_info f52b chat_paste_go f6bd +chat_paste_go_2 f3cb check e5ca check_box e834 check_box_outline_blank e835 @@ -643,7 +705,9 @@ checklist e6b1 checklist_rtl e6b3 checkroom f19e cheer f6a8 +chef_hat f357 chess f5e7 +chess_pawn f3b6 chevron_backward f46b chevron_forward f46a chevron_left e5cb @@ -674,6 +738,8 @@ clear_day f157 clear_night f159 climate_mini_split f8b5 clinical_notes e09e +clock_arrow_down f382 +clock_arrow_up f381 clock_loader_10 f726 clock_loader_20 f725 clock_loader_40 f724 @@ -688,9 +754,11 @@ closed_caption_add f4ae closed_caption_disabled f1dc closed_caption_off e996 cloud f15c +cloud_alert f3cc cloud_circle e2be cloud_done e2bf cloud_download e2c0 +cloud_lock f386 cloud_off e2c1 cloud_queue f15c cloud_sync eb5a @@ -706,6 +774,7 @@ code_off e4f3 coffee efef coffee_maker eff0 cognition e09f +cognition_2 f3b5 collapse_all e944 collapse_content f507 collections e3d3 @@ -713,6 +782,7 @@ collections_bookmark e431 color_lens e40a colorize e3b8 colors e997 +combine_columns f420 comedy_mask f4d6 comic_bubble f5dd comment e24c @@ -730,6 +800,8 @@ component_exchange f1e7 compost e761 compress e94d computer e31e +computer_arrow_up f2f7 +computer_cancel f2f6 concierge f561 conditions e0a0 confirmation_number e638 @@ -769,6 +841,7 @@ control_point_duplicate e3bb controller_gen e83d conversion_path f0c1 conversion_path_off f7b4 +convert_to_text f41f conveyor_belt f867 cookie eaac cookie_off f79a @@ -793,6 +866,7 @@ countertops f1f7 create f097 create_new_folder e2cc credit_card e8a1 +credit_card_clock f438 credit_card_gear f52d credit_card_heart f52c credit_card_off e4f4 @@ -814,6 +888,7 @@ crop_rotate e437 crop_square e3c6 crossword f5e5 crowdsource eb18 +crown ecb3 cruelty_free e799 css eb93 csv e6cf @@ -836,6 +911,7 @@ cyclone ebd5 dangerous e99a dark_mode e51c dashboard e871 +dashboard_2 f3ea dashboard_customize e99b data_alert f7f6 data_array ead1 @@ -850,6 +926,9 @@ data_table e99c data_thresholding eb9f data_usage eff2 database f20e +database_off f414 +database_search f38e +database_upload f3dc dataset f8ee dataset_linked f8ef date_range e916 @@ -864,6 +943,9 @@ delete_forever e92b delete_history f518 delete_outline e92e delete_sweep e16c +delivery_dining eb28 +delivery_truck_bolt f3a2 +delivery_truck_speed f3a1 demography e489 density_large eba9 density_medium eb9e @@ -882,7 +964,10 @@ design_services f10a desk f8f4 deskphone f7fa desktop_access_disabled e99d +desktop_cloud f3db +desktop_cloud_stack f3be desktop_landscape f45e +desktop_landscape_add f439 desktop_mac e30b desktop_portrait f45d desktop_windows e30c @@ -901,17 +986,20 @@ developer_board_off e4ff developer_guide e99e developer_mode e1b0 developer_mode_tv e874 +device_band f2f5 device_hub e335 device_reset e8b3 device_thermostat e1ff device_unknown e339 devices e326 devices_fold ebde +devices_fold_2 f406 devices_off f7a5 devices_other e337 devices_wearables f6ab dew_point f879 diagnosis e0a8 +diagonal_line f41e dialer_sip e0bb dialogs e99f dialpad e0bc @@ -973,9 +1061,11 @@ dock e30e dock_to_bottom f7e6 dock_to_left f7e5 dock_to_right f7e4 +docs ea7d docs_add_on f0c2 docs_apps_script f0c3 document_scanner e5fa +document_search f385 domain e7ee domain_add eb62 domain_disabled e0ef @@ -1015,6 +1105,7 @@ draw_collage f7f7 drawing_recognition eb00 dresser e210 drive_eta eff7 +drive_export f41d drive_file_move e9a1 drive_file_move_outline e9a1 drive_file_move_rtl e9a1 @@ -1022,6 +1113,7 @@ drive_file_rename_outline e9a2 drive_folder_upload e9a3 drive_fusiontable e678 dropdown e9a4 +dropper_eye f351 dry f1b3 dry_cleaning ea58 dual_screen f6cf @@ -1033,7 +1125,12 @@ e911_avatar f11a e911_emergency f119 e_mobiledata f002 e_mobiledata_badge f7e3 +ear_sound f356 +earbud_case f327 +earbud_left f326 +earbud_right f325 earbuds f003 +earbuds_2 f324 earbuds_battery f004 early_on e2ba earthquake f64f @@ -1045,7 +1142,10 @@ eda f6e8 edgesensor_high f005 edgesensor_low f006 edit f097 +edit_arrow_down f380 +edit_arrow_up f37f edit_attributes e578 +edit_audio f42d edit_calendar e742 edit_document f88c edit_location e568 @@ -1093,6 +1193,10 @@ emoticon e5f3 empty_dashboard f844 enable f188 encrypted e593 +encrypted_add f429 +encrypted_add_circle f42a +encrypted_minus_circle f428 +encrypted_off f427 endocrinology e0a9 energy e9a6 energy_program_saving f15f @@ -1105,6 +1209,11 @@ enterprise e70e enterprise_off eb4d equal f77b equalizer e01d +eraser_size_1 f3fc +eraser_size_2 f3fb +eraser_size_3 f3fa +eraser_size_4 f3f9 +eraser_size_5 f3f8 error f8b6 error_circle_rounded f8b6 error_med e49b @@ -1138,6 +1247,8 @@ expand_circle_up f5d2 expand_content f830 expand_less e5ce expand_more e5cf +expansion_panels ef90 +expension_panels ef90 experiment e686 explicit e01e explore e87a @@ -1161,9 +1272,15 @@ face_3 f8db face_4 f8dc face_5 f8dd face_6 f8de +face_down f402 +face_left f401 +face_nod f400 face_retouching_natural ef4e face_retouching_off f007 +face_right f3ff +face_shake f3fe face_unlock f008 +face_up f3fd fact_check f0c5 factory ebbc falling f60d @@ -1173,6 +1290,8 @@ family_home eb26 family_link eb19 family_restroom f1a2 family_star f527 +fan_focus f334 +fan_indirect f333 farsight_digital f559 fast_forward e01f fast_rewind e020 @@ -1203,13 +1322,18 @@ file_copy_off f4d8 file_download f090 file_download_done f091 file_download_off e4fe +file_export f3b2 +file_json f3bb file_map e2c5 +file_map_stack f3e2 file_open eaf3 +file_png f3bc file_present ea0e file_save f17f file_save_off e505 file_upload f09b file_upload_off f886 +files ea85 filter e3d3 filter_1 e3d0 filter_2 e3d1 @@ -1223,6 +1347,7 @@ filter_9 e3d9 filter_9_plus e3da filter_alt ef4f filter_alt_off eb32 +filter_arrow_right f3d1 filter_b_and_w e3db filter_center_focus e3dc filter_drama e3dd @@ -1248,11 +1373,15 @@ fire_truck f8f2 fireplace ea43 first_page e5dc fit_page f77a +fit_page_height f397 +fit_page_width f396 fit_screen ea10 fit_width f779 fitness_center eb43 fitness_tracker f463 flag f0c6 +flag_2 f40f +flag_check f3d8 flag_circle eaf8 flag_filled f0c6 flaky ef50 @@ -1283,6 +1412,7 @@ flood ebe6 floor f6e4 floor_lamp e21e flourescent f07d +flowchart f38d flowsheet e0ae fluid e483 fluid_balance f80d @@ -1296,11 +1426,17 @@ fmd_good f1db foggy e818 folded_hands f5ed folder e2c7 +folder_check f3d7 +folder_check_2 f3d6 +folder_code f3c8 folder_copy ebbd folder_data f586 folder_delete eb34 +folder_eye f3d5 +folder_info f395 folder_limited f4e4 folder_managed f775 +folder_match f3d4 folder_off eb83 folder_open e2c8 folder_shared e2c9 @@ -1317,6 +1453,7 @@ for_you e9ac forest ea99 fork_left eba0 fork_right ebac +fork_spoon f3e4 forklift f868 format_align_center e234 format_align_justify e235 @@ -1353,6 +1490,7 @@ format_overline eb65 format_paint e243 format_paragraph f865 format_quote e244 +format_quote_off f413 format_shapes e25e format_size e245 format_strikethrough e246 @@ -1376,6 +1514,7 @@ forward_circle f6f5 forward_media f6f4 forward_to_inbox f187 foundation f200 +fragrance f345 frame_inspect f772 frame_person f8a6 frame_person_mic f4d5 @@ -1417,12 +1556,15 @@ gesture e155 gesture_select f657 get_app f090 gif e908 +gif_2 f40e gif_box e7a3 girl eb68 gite e58b glass_cup f6e3 globe e64c globe_asia f799 +globe_book f3c9 +globe_location_pin f35d globe_uk f798 glucose e4a0 glyphs f8a3 @@ -1439,10 +1581,17 @@ gpp_maybe f014 gps_fixed e55c gps_not_fixed e1b7 gps_off e1b6 -grade e885 +grade f09a gradient e3e9 grading ea4f grain e3ea +graph_1 f3a0 +graph_2 f39f +graph_3 f39e +graph_4 f39d +graph_5 f39c +graph_6 f39b +graph_7 f346 graphic_eq e1b8 grass f205 grid_3x3 f015 @@ -1458,6 +1607,7 @@ group ea21 group_add e7f0 group_off e747 group_remove e7ad +group_search f3ce group_work e886 grouped_bar_chart f211 groups f233 @@ -1473,12 +1623,14 @@ hail e9b1 hallway e6f8 hand_bones f894 hand_gesture ef9c +hand_gesture_off f3f3 handheld_controller f4c6 handshake ebcb handwriting_recognition eb02 handyman f10b hangout_video e0c1 hangout_video_off e0c2 +hard_disk f3da hard_drive f80e hard_drive_2 f7a4 hardware ea59 @@ -1509,6 +1661,7 @@ heap_snapshot_multiple f76d heap_snapshot_thumbnail f76c hearing e023 hearing_aid f464 +hearing_aid_disabled f3b0 hearing_disabled f104 heart_broken eac2 heart_check f60a @@ -1533,6 +1686,7 @@ high_density f79c high_quality e024 high_res f54b highlight e25f +highlight_alt ef52 highlight_keyboard_focus f510 highlight_mouse_cursor f511 highlight_off e888 @@ -1544,6 +1698,7 @@ highlighter_size_4 f768 highlighter_size_5 f767 hiking e50a history e8b3 +history_2 f3e6 history_edu ea3e history_off f4da history_toggle_off f17d @@ -1569,14 +1724,18 @@ home_work f030 horizontal_distribute e014 horizontal_rule f108 horizontal_split e947 +host f3d9 hot_tub eb46 hotel e549 hotel_class e743 hourglass ebff +hourglass_arrow_down f37e +hourglass_arrow_up f37d hourglass_bottom ea5c hourglass_disabled ef53 hourglass_empty e88b hourglass_full e88c +hourglass_pause f38c hourglass_top ea5b house ea44 house_siding f202 @@ -1599,13 +1758,17 @@ humidity_low f164 humidity_mid f165 humidity_percentage f87e hvac f10e +hvac_max_defrost f332 ice_skating e50b icecream ea69 id_card f4ca +identity_aware_proxy e2dd +identity_platform ebb7 ifl e025 iframe f71b iframe_off f71c image e3f4 +image_arrow_up f317 image_aspect_ratio e3f5 image_not_supported f116 image_search e43f @@ -1619,6 +1782,10 @@ in_home_mode e833 inactive_order e0fc inbox e156 inbox_customize f859 +inbox_text f399 +inbox_text_asterisk f360 +inbox_text_person f35e +inbox_text_share f35c incomplete_circle e79b indeterminate_check_box e909 indeterminate_question_box f56d @@ -1631,6 +1798,7 @@ ink_highlighter e6d1 ink_highlighter_move f524 ink_marker e6d2 ink_pen e6d3 +ink_selection ef52 inpatient e0fe input e890 input_circle f71a @@ -1726,6 +1894,7 @@ labs e105 lan eb2f landscape e564 landscape_2 f4c4 +landscape_2_edit f310 landscape_2_off f4c3 landslide ebd7 language e894 @@ -1747,6 +1916,7 @@ language_us_colemak f75b language_us_dvorak f75a laps f6b9 laptop e31e +laptop_car f3cd laptop_chromebook e31f laptop_mac e320 laptop_windows e321 @@ -1778,6 +1948,7 @@ light_group e28b light_mode e518 light_off e9b8 lightbulb e90f +lightbulb_2 f3e3 lightbulb_circle ebfe lightbulb_outline e90f lightning_stand efa4 @@ -1806,6 +1977,7 @@ liquor ea60 list e896 list_alt e0ee list_alt_add f756 +list_alt_check f3de lists e9b9 live_help e0c6 live_tv e63a @@ -1855,6 +2027,7 @@ locator_tag f8c1 lock e899 lock_clock ef57 lock_open e898 +lock_open_circle f361 lock_open_right f656 lock_outline e899 lock_person f8f3 @@ -1906,6 +2079,7 @@ manage_search f02f manga f5e3 manufacturing e726 map e55b +map_search f3ca maps_home_work f030 maps_ugc ef58 margin e9bb @@ -1921,8 +2095,10 @@ markdown_paste f554 markunread e159 markunread_mailbox e89b masked_transitions e72e +masked_transitions_add f42b masks f218 match_case f6f1 +match_case_off f36f match_word f6f0 matter e907 maximize e930 @@ -1952,6 +2128,7 @@ metabolism e10b metro f474 mfg_nest_yale_lock f11d mic e31d +mic_alert f392 mic_double f5d1 mic_external_off ef59 mic_external_on ef5a @@ -1975,8 +2152,16 @@ mitre f547 mixture_med e4c8 mms e618 mobile_friendly e200 +mobile_hand f323 +mobile_hand_left f313 +mobile_hand_left_off f312 +mobile_hand_off f314 +mobile_loupe f322 mobile_off e201 mobile_screen_share e0e7 +mobile_screensaver f321 +mobile_sound_2 f318 +mobile_speaker f320 mobiledata_off f034 mode f097 mode_comment e253 @@ -1995,8 +2180,10 @@ mode_of_travel e7ce mode_off_on f16f mode_standby f037 model_training f0cf +modeling f3aa monetization_on e263 money e57d +money_bag f3ee money_off f038 money_off_csred f038 monitor ef5b @@ -2009,7 +2196,9 @@ monochrome_photos e403 monorail f473 mood ea22 mood_bad e7f3 +moon_stars f34f mop e28d +moped eb28 more e619 more_down f196 more_horiz e5d3 @@ -2024,6 +2213,7 @@ motion_photos_off e9c0 motion_photos_on e9c1 motion_photos_pause f227 motion_photos_paused f227 +motion_play f40b motion_sensor_active e792 motion_sensor_alert e784 motion_sensor_idle e783 @@ -2057,10 +2247,13 @@ moving_ministry e73e mp e9c3 multicooker e293 multiline_chart e6df +multimodal_hand_eye f41b +multiple_airports efab multiple_stop f1b9 museum ea36 music_cast eb1a music_note e405 +music_note_add f391 music_off e440 music_video e063 my_location e55c @@ -2128,6 +2321,8 @@ nest_wifi_pro_2 f56a nest_wifi_router f133 network_cell e1b9 network_check e640 +network_intel_node f371 +network_intelligence efac network_intelligence_history f5f6 network_intelligence_update f5f5 network_locked e61a @@ -2153,6 +2348,7 @@ newsstand e9c4 next_plan ef5d next_week e16a nfc e1bb +nfc_off f369 night_shelter f1f1 night_sight_auto f1d7 night_sight_auto_off f1f9 @@ -2199,6 +2395,8 @@ notes e26c notification_add e399 notification_important e004 notification_multiple e6c2 +notification_settings f367 +notification_sound f353 notifications e7f5 notifications_active e7f7 notifications_none e7f5 @@ -2232,6 +2430,7 @@ open_run f4b7 open_with e89f ophthalmology e115 oral_disease e116 +orbit f426 order_approve f812 order_play f811 orders eb14 @@ -2254,6 +2453,7 @@ oven e9c7 oven_gen e843 overview e4a7 overview_key f7d4 +owl f3b4 oxygen_saturation e4de p2p f52a pace f6b8 @@ -2262,6 +2462,8 @@ package e48f package_2 f569 padding e9c8 page_control e731 +page_footer f383 +page_header f384 page_info f614 pageless f509 pages e7f9 @@ -2345,6 +2547,7 @@ person_play f7fd person_raised_hand f59a person_remove ef66 person_search f106 +person_shield e384 personal_bag eb0e personal_bag_off eb0f personal_bag_question eb10 @@ -2412,6 +2615,8 @@ pin f045 pin_drop e55e pin_end e767 pin_invoke e763 +pinboard f3ab +pinboard_unread f3ac pinch eb38 pinch_zoom_in f1fa pinch_zoom_out f1fb @@ -2421,6 +2626,7 @@ pivot_table_chart e9ce place f1db place_item f1f0 plagiarism ea5a +planet f387 planner_banner_ad_pt e692 planner_review e694 play_arrow e037 @@ -2438,6 +2644,7 @@ playlist_add_check_circle e7e6 playlist_add_circle e7e5 playlist_play e05f playlist_remove eb80 +plug_connect f35a plumbing f107 plus_one e800 podcasts f048 @@ -2447,6 +2654,7 @@ point_of_sale f17e point_scan f70c poker_chip f49b policy ea17 +policy_alert f407 poll f0cc polyline ebbb polymer e8ab @@ -2463,6 +2671,7 @@ power e63c power_input e336 power_off e646 power_rounded f8c7 +power_settings_circle f418 power_settings_new f8c7 prayer_times f838 precision_manufacturing f049 @@ -2523,8 +2732,8 @@ quick_reference e46e quick_reference_all f801 quick_reorder eb15 quickreply ef6c -quiet_time e1f9 -quiet_time_active e291 +quiet_time f159 +quiet_time_active eb76 quiz f04c r_mobiledata f04d radar f04e @@ -2544,6 +2753,7 @@ ramp_left eb9c ramp_right eb96 range_hood e1ea rate_review e560 +rate_review_rtl e706 raven f555 raw_off f04f raw_on f050 @@ -2555,6 +2765,7 @@ rebase f845 rebase_edit f846 receipt e8b0 receipt_long ef6e +receipt_long_off f40a recent_actors e03f recent_patient f808 recenter f4c0 @@ -2590,6 +2801,9 @@ repeat e040 repeat_on e9d6 repeat_one e041 repeat_one_on e9d7 +replace_audio f451 +replace_image f450 +replace_video f44f replay e042 replay_10 e059 replay_30 e05a @@ -2648,6 +2862,7 @@ room_preferences f1b8 room_service eb49 rotate_90_degrees_ccw e418 rotate_90_degrees_cw eaab +rotate_auto f417 rotate_left e419 rotate_right e41a roundabout_left eb99 @@ -2655,6 +2870,7 @@ roundabout_right eba3 rounded_corner e920 route eacd router e328 +router_off f2f4 routine e20c rowing e921 rss_feed e0e5 @@ -2679,6 +2895,7 @@ sauna f6f7 save e161 save_alt f090 save_as eb60 +save_clock f398 saved_search ea11 savings e2eb scale eb5f @@ -2707,6 +2924,7 @@ screen_search_desktop ef70 screen_share e0e2 screenshot f056 screenshot_frame f677 +screenshot_frame_2 f374 screenshot_keyboard f7d3 screenshot_monitor ec08 screenshot_region f7d2 @@ -2720,11 +2938,18 @@ sd_card_alert f057 sd_storage e623 sdk e720 search e8b6 +search_activity f3e5 search_check f800 search_check_2 f469 search_hands_free e696 search_insights f4bc search_off ea76 +seat_cool_left f331 +seat_cool_right f330 +seat_heat_left f32f +seat_heat_right f32e +seat_vent_left f32d +seat_vent_right f32c security e32a security_key f503 security_update f072 @@ -2768,6 +2993,7 @@ sentiment_very_dissatisfied e814 sentiment_very_satisfied e815 sentiment_worried f6a1 serif f4ac +server_person f3bd service_toolbox e717 set_meal f1ea settings e8b8 @@ -2811,6 +3037,7 @@ shape_line f8d3 shape_recognition eb01 shapes e602 share e80d +share_eta e5f7 share_location f05f share_off f6cb share_reviews f8a4 @@ -2825,6 +3052,7 @@ shield_locked f592 shield_moon eaa9 shield_person f650 shield_question f529 +shield_watch f30f shield_with_heart e78f shield_with_house e78d shift e5f2 @@ -2834,6 +3062,7 @@ shop e8c9 shop_2 e8ca shop_two e8ca shopping_bag f1cc +shopping_bag_speed f39a shopping_basket e8cb shopping_cart e8cc shopping_cart_checkout eb88 @@ -2883,8 +3112,13 @@ signpost eb91 sim_card e32b sim_card_alert f057 sim_card_download f068 +simulation f3e1 single_bed ea48 sip f069 +siren f3a7 +siren_check f3a6 +siren_open f3a5 +siren_question f3a4 skateboarding e511 skeleton f899 skillet f543 @@ -2892,6 +3126,7 @@ skillet_cooktop f544 skip_next e044 skip_previous e045 skull f89a +skull_list f370 slab_serif f4ab sledding e512 sleep e213 @@ -2908,6 +3143,7 @@ smart_outlet e844 smart_screen f06b smart_toy f06c smartphone e32c +smartphone_camera f44e smb_share f74b smoke_free eb4a smoking_rooms eb4b @@ -2971,6 +3207,11 @@ speed_1_7x f493 speed_2x f4eb speed_camera f470 spellcheck e8ce +split_scene f3bf +split_scene_down f2ff +split_scene_left f2fe +split_scene_right f2fd +split_scene_up f2fc splitscreen f06d splitscreen_add f4fd splitscreen_bottom f676 @@ -3006,9 +3247,12 @@ sports_volleyball ea31 sprinkler e29a sprint f81f square eb36 +square_dot f3b3 square_foot ea49 ssid_chart eb66 stack f609 +stack_group f359 +stack_hexagon f41c stack_off f608 stack_star f607 stacked_bar_chart e9e6 @@ -3028,7 +3272,9 @@ star_outline f09a star_purple500 f09a star_rate f0ec star_rate_half ec45 +star_shine f31d stars e8d0 +stars_2 f31c start e089 stat_0 e697 stat_1 e698 @@ -3041,6 +3287,7 @@ stay_current_landscape e0d3 stay_current_portrait e0d4 stay_primary_landscape e0d5 stay_primary_portrait e0d6 +steering_wheel_heat f32b step f6fe step_into f701 step_out f700 @@ -3076,8 +3323,13 @@ stroller f1ae style e41d styler e273 stylus f604 +stylus_brush f366 +stylus_fountain_pen f365 +stylus_highlighter f364 stylus_laser_pointer f747 stylus_note f603 +stylus_pen f363 +stylus_pencil f362 subdirectory_arrow_left e5d9 subdirectory_arrow_right e5da subheader e9ea @@ -3085,6 +3337,7 @@ subject e8d2 subscript f111 subscriptions e064 subtitles e048 +subtitles_gear f355 subtitles_off ef72 subway e56f summarize f071 @@ -3120,6 +3373,7 @@ swipe_vertical eb51 switch e1f4 switch_access f6fd switch_access_2 f506 +switch_access_3 f34d switch_access_shortcut e7e1 switch_access_shortcut_add e7e2 switch_account e9ed @@ -3134,6 +3388,9 @@ symptoms e132 synagogue eab0 sync e627 sync_alt ea18 +sync_arrow_down f37c +sync_arrow_up f37b +sync_desktop f41a sync_disabled e628 sync_lock eaee sync_problem e629 @@ -3146,17 +3403,22 @@ system_update f072 system_update_alt e8d7 tab e8d8 tab_close f745 +tab_close_inactive f3d0 tab_close_right f746 tab_duplicate f744 tab_group f743 +tab_inactive f43b tab_move f742 tab_new_right f741 tab_recent f740 +tab_search f2f2 tab_unselected e8d9 table f191 table_bar ead2 table_chart e265 table_chart_view f6ef +table_convert f3c7 +table_edit f3c6 table_eye f466 table_lamp e1f2 table_restaurant eac6 @@ -3165,6 +3427,7 @@ table_rows_narrow f73f table_view f1be tablet e32f tablet_android e330 +tablet_camera f44d tablet_mac e331 tabs e9ee tactic f564 @@ -3189,6 +3452,7 @@ tenancy f0e3 terminal eb8e terrain e564 text_ad e728 +text_compare f3c5 text_decrease eadd text_fields e262 text_fields_alt e9f1 @@ -3225,10 +3489,13 @@ thermometer_gain f6d8 thermometer_loss f6d7 thermometer_minus f581 thermostat f076 +thermostat_arrow_down f37a +thermostat_arrow_up f379 thermostat_auto f077 thermostat_carbon f178 things_to_do eb2a thread_unread f4f9 +threat_intelligence eaed thumb_down f578 thumb_down_alt f578 thumb_down_filled f578 @@ -3244,6 +3511,9 @@ thumbs_up_down e8dd thunderstorm ebdb tibia f89b tibia_alt f89c +tile_large f3c3 +tile_medium f3c2 +tile_small f3c1 time_auto f0e4 time_to_leave eff7 timelapse e422 @@ -3257,6 +3527,8 @@ timer_3_alt_1 efc0 timer_3_select f07b timer_5 f4b1 timer_5_shutter f4b2 +timer_arrow_down f378 +timer_arrow_up f377 timer_off e426 timer_pause f4bb timer_play f4ba @@ -3282,12 +3554,16 @@ tools_pliers_wire_stripper e2aa tools_power_drill e1e9 tools_wrench f8cd tooltip e9f8 +tooltip_2 f3ed top_panel_close f733 top_panel_open f732 topic f1c8 tornado e199 total_dissolved_solids f877 touch_app e913 +touch_double f38b +touch_long f38a +touch_triple f389 touchpad_mouse f687 touchpad_mouse_off f4e6 tour ef75 @@ -3296,6 +3572,8 @@ toys_and_games efc2 toys_fan f887 track_changes e8e1 trackpad_input f4c7 +trackpad_input_2 f409 +trackpad_input_3 f408 traffic e565 traffic_jam f46f trail_length eb5e @@ -3308,6 +3586,7 @@ transfer_within_a_station e572 transform e428 transgender e58d transit_enterexit e579 +transit_ticket f3f1 transition_chop f50e transition_dissolve f50d transition_fade f50c @@ -3342,8 +3621,10 @@ turn_slight_right eb9a turned_in e8e7 turned_in_not e8e7 tv e63b +tv_displays f3ec tv_gen e830 tv_guide e1dc +tv_next f3eb tv_off e647 tv_options_edit_channels e1dd tv_options_input_settings e1de @@ -3351,6 +3632,7 @@ tv_remote f5d9 tv_signin e71b tv_with_assistant e785 two_pager f51f +two_pager_store f3c4 two_wheeler e9f9 type_specimen f8f0 u_turn_left eba1 @@ -3382,6 +3664,7 @@ upcoming f07e update e923 update_disabled e075 upgrade f0fb +upi_pay f3cf upload f09b upload_2 f521 upload_file e9fc @@ -3401,6 +3684,7 @@ variable_remove f51c variables f851 ventilator e139 verified ef76 +verified_off f30e verified_user f013 vertical_align_bottom e258 vertical_align_center e259 @@ -3412,6 +3696,7 @@ vertical_split e949 vibration e62d video_call e070 video_camera_back f07f +video_camera_back_add f40c video_camera_front f080 video_camera_front_off f83b video_chat f8a0 @@ -3422,10 +3707,12 @@ video_search efc6 video_settings ea75 video_stable f081 videocam e04b +videocam_alert f390 videocam_off e04c videogame_asset e338 videogame_asset_off e500 view_agenda e8e9 +view_apps f376 view_array e8ea view_carousel e8eb view_column e8ec @@ -3443,6 +3730,7 @@ view_in_ar_off f61b view_kanban eb7f view_list e8ef view_module e8f0 +view_object_track f432 view_quilt e8f1 view_real_size f4c2 view_sidebar f114 @@ -3460,7 +3748,9 @@ vo2_max f4aa voice_chat e62e voice_over_off e94a voice_selection f58a +voice_selection_off f42c voicemail e0d9 +voicemail_2 f352 volcano ebda volume_down e04d volume_down_alt e79c @@ -3473,6 +3763,7 @@ vpn_key e0da vpn_key_alert f6cc vpn_key_off eb7a vpn_lock e62f +vpn_lock_2 f350 vr180_create2d efca vr180_create2d_off f571 vrpano f082 @@ -3481,6 +3772,8 @@ wall_lamp e2b4 wallet f8ff wallpaper e1bc wallpaper_slideshow f672 +wand_shine f31f +wand_stars f31e ward e13c warehouse ebb8 warning f083 @@ -3538,6 +3831,9 @@ west f1e6 whatshot e80e wheelchair_pickup f1ab where_to_vote e177 +widget_medium f3ba +widget_small f3b9 +widget_width f3b8 widgets e1bd width f730 width_full f8f5 @@ -3551,6 +3847,9 @@ wifi_calling ef77 wifi_calling_1 f0e7 wifi_calling_2 f0f6 wifi_calling_3 f0e7 +wifi_calling_bar_1 f44c +wifi_calling_bar_2 f44b +wifi_calling_bar_3 f44a wifi_channel eb6a wifi_find eb31 wifi_home f671 @@ -3568,6 +3867,9 @@ window f088 window_closed e77e window_open e78c window_sensor e2bb +windshield_defrost_front f32a +windshield_defrost_rear f329 +windshield_heat_front f328 wine_bar f1e8 woman e13e woman_2 f8e7 @@ -3596,4 +3898,4 @@ zone_person_urgent e788 zoom_in e8ff zoom_in_map eb2d zoom_out e900 -zoom_out_map e56b +zoom_out_map e56b \ No newline at end of file diff --git a/client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined.json b/client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined-Regular.json similarity index 91% rename from client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined.json rename to client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined-Regular.json index 2be9d15d69..2eb48b234b 100644 --- a/client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined.json +++ b/client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined-Regular.json @@ -20,6 +20,7 @@ "21mp": 59743, "22mp": 59744, "23mp": 59745, + "24fps_select": 62450, "24mp": 59746, "2d": 61239, "2k": 59747, @@ -28,6 +29,7 @@ "30fps": 61390, "30fps_select": 61391, "360": 58743, + "3d": 60728, "3d_rotation": 59469, "3g_mobiledata": 61392, "3g_mobiledata_badge": 63472, @@ -72,6 +74,7 @@ "accessibility_new": 59692, "accessible": 59668, "accessible_forward": 59700, + "accessible_menu": 62286, "account_balance": 59471, "account_balance_wallet": 59472, "account_box": 59473, @@ -93,6 +96,7 @@ "adaptive_audio_mic_off": 62667, "adb": 58894, "add": 57669, + "add_2": 62429, "add_a_photo": 58425, "add_ad": 59178, "add_alarm": 59478, @@ -104,6 +108,8 @@ "add_chart": 61244, "add_circle": 58298, "add_circle_outline": 58298, + "add_column_left": 62501, + "add_column_right": 62500, "add_comment": 57958, "add_diamond": 62620, "add_home": 63723, @@ -117,6 +123,8 @@ "add_photo_alternate": 58430, "add_reaction": 57811, "add_road": 61243, + "add_row_above": 62499, + "add_row_below": 62498, "add_shopping_cart": 59476, "add_task": 62010, "add_to_drive": 58972, @@ -157,6 +165,7 @@ "alarm_add": 59478, "alarm_off": 59479, "alarm_on": 59480, + "alarm_pause": 62299, "alarm_smart_wake": 63152, "album": 57369, "align_center": 58198, @@ -231,6 +240,7 @@ "arming_countdown": 59274, "arrow_and_edge": 62935, "arrow_back": 58820, + "arrow_back_2": 62522, "arrow_back_ios": 58848, "arrow_back_ios_new": 58090, "arrow_circle_down": 61825, @@ -248,6 +258,8 @@ "arrow_insert": 63543, "arrow_left": 58846, "arrow_left_alt": 61309, + "arrow_menu_close": 62419, + "arrow_menu_open": 62418, "arrow_or_edge": 62934, "arrow_outward": 63694, "arrow_range": 63131, @@ -257,14 +269,19 @@ "arrow_split": 59908, "arrow_top_left": 63278, "arrow_top_right": 63277, + "arrow_upload_progress": 62452, + "arrow_upload_ready": 62453, "arrow_upward": 58840, "arrow_upward_alt": 59782, "arrow_warm_up": 62645, + "arrows_input": 62356, "arrows_more_down": 63659, "arrows_more_up": 63660, + "arrows_output": 62355, "arrows_outward": 63276, "art_track": 57440, "article": 61250, + "article_person": 62312, "article_shortcut": 62855, "artist": 57370, "aspect_ratio": 59483, @@ -325,6 +342,7 @@ "auto_transmission": 62783, "auto_videocam": 63168, "autofps_select": 61404, + "automation": 62497, "autopause": 63158, "autopay": 63563, "autoplay": 63157, @@ -359,6 +377,7 @@ "ballot": 57714, "bar_chart": 57963, "bar_chart_4_bars": 63105, + "bar_chart_off": 62481, "barcode": 59147, "barcode_reader": 63580, "barcode_scanner": 59148, @@ -383,6 +402,20 @@ "battery_80": 61600, "battery_90": 61601, "battery_alert": 57756, + "battery_android_0": 62221, + "battery_android_1": 62220, + "battery_android_2": 62219, + "battery_android_3": 62218, + "battery_android_4": 62217, + "battery_android_5": 62216, + "battery_android_6": 62215, + "battery_android_alert": 62214, + "battery_android_bolt": 62213, + "battery_android_full": 62212, + "battery_android_plus": 62211, + "battery_android_question": 62210, + "battery_android_share": 62209, + "battery_android_shield": 62208, "battery_change": 63467, "battery_charging_20": 61602, "battery_charging_30": 61603, @@ -414,7 +447,7 @@ "bedroom_baby": 61408, "bedroom_child": 61409, "bedroom_parent": 61410, - "bedtime": 61252, + "bedtime": 61785, "bedtime_off": 60278, "beenhere": 58669, "bento": 61940, @@ -446,6 +479,8 @@ "blur_off": 58276, "blur_on": 58277, "blur_short": 59599, + "boat_bus": 62317, + "boat_railway": 62316, "body_fat": 57496, "body_system": 57497, "bolt": 59915, @@ -455,10 +490,13 @@ "book_3": 62781, "book_4": 62780, "book_5": 62779, + "book_6": 62431, "book_online": 61975, + "book_ribbon": 62439, "bookmark": 59623, "bookmark_add": 58776, "bookmark_added": 58777, + "bookmark_bag": 62480, "bookmark_border": 59623, "bookmark_check": 62551, "bookmark_flag": 62550, @@ -467,6 +505,7 @@ "bookmark_remove": 58778, "bookmark_star": 62548, "bookmarks": 59787, + "books_movies_and_music": 61314, "border_all": 57896, "border_bottom": 57897, "border_clear": 57898, @@ -479,6 +518,7 @@ "border_style": 57905, "border_top": 57906, "border_vertical": 57907, + "borg": 62477, "bottom_app_bar": 59184, "bottom_drawer": 59181, "bottom_navigation": 59788, @@ -497,6 +537,7 @@ "breaking_news": 59912, "breaking_news_alt_1": 61626, "breastfeeding": 63574, + "brick": 62344, "brightness_1": 58362, "brightness_2": 61494, "brightness_3": 58280, @@ -530,6 +571,7 @@ "bungalow": 58769, "burst_mode": 58428, "bus_alert": 59791, + "bus_railway": 62315, "business": 59374, "business_center": 60223, "business_chip": 63564, @@ -580,9 +622,26 @@ "cancel_schedule_send": 59961, "candle": 62856, "candlestick_chart": 60116, + "cannabis": 62195, "captive_portal": 63272, "capture": 63271, "car_crash": 60402, + "car_defrost_left": 62276, + "car_defrost_low_left": 62275, + "car_defrost_low_right": 62274, + "car_defrost_mid_low_left": 62273, + "car_defrost_mid_right": 62272, + "car_defrost_right": 62271, + "car_fan_low_left": 62270, + "car_fan_low_mid_left": 62269, + "car_fan_low_right": 62268, + "car_fan_mid_left": 62267, + "car_fan_mid_low_right": 62266, + "car_fan_mid_right": 62265, + "car_fan_recirculate": 62264, + "car_gear": 62263, + "car_lock": 62262, + "car_mirror_heat": 62261, "car_rental": 59989, "car_repair": 59990, "car_tag": 62691, @@ -592,6 +651,7 @@ "cardio_load": 62649, "cardiology": 57500, "cards": 59793, + "cards_star": 62325, "carpenter": 61944, "carry_on_bag": 60168, "carry_on_bag_checked": 60171, @@ -606,6 +666,7 @@ "cast_warning": 62959, "castle": 60081, "category": 58740, + "category_search": 62519, "celebration": 60005, "cell_merge": 63534, "cell_tower": 60346, @@ -628,6 +689,7 @@ "chat_error": 63404, "chat_info": 62763, "chat_paste_go": 63165, + "chat_paste_go_2": 62411, "check": 58826, "check_box": 59444, "check_box_outline_blank": 59445, @@ -644,7 +706,9 @@ "checklist_rtl": 59059, "checkroom": 61854, "cheer": 63144, + "chef_hat": 62295, "chess": 62951, + "chess_pawn": 62390, "chevron_backward": 62571, "chevron_forward": 62570, "chevron_left": 58827, @@ -675,6 +739,8 @@ "clear_night": 61785, "climate_mini_split": 63669, "clinical_notes": 57502, + "clock_arrow_down": 62338, + "clock_arrow_up": 62337, "clock_loader_10": 63270, "clock_loader_20": 63269, "clock_loader_40": 63268, @@ -689,9 +755,11 @@ "closed_caption_disabled": 61916, "closed_caption_off": 59798, "cloud": 61788, + "cloud_alert": 62412, "cloud_circle": 58046, "cloud_done": 58047, "cloud_download": 58048, + "cloud_lock": 62342, "cloud_off": 58049, "cloud_queue": 61788, "cloud_sync": 60250, @@ -707,6 +775,7 @@ "coffee": 61423, "coffee_maker": 61424, "cognition": 57503, + "cognition_2": 62389, "collapse_all": 59716, "collapse_content": 62727, "collections": 58323, @@ -714,6 +783,7 @@ "color_lens": 58378, "colorize": 58296, "colors": 59799, + "combine_columns": 62496, "comedy_mask": 62678, "comic_bubble": 62941, "comment": 57932, @@ -731,6 +801,8 @@ "compost": 59233, "compress": 59725, "computer": 58142, + "computer_arrow_up": 62199, + "computer_cancel": 62198, "concierge": 62817, "conditions": 57504, "confirmation_number": 58936, @@ -770,6 +842,7 @@ "controller_gen": 59453, "conversion_path": 61633, "conversion_path_off": 63412, + "convert_to_text": 62495, "conveyor_belt": 63591, "cookie": 60076, "cookie_off": 63386, @@ -794,6 +867,7 @@ "create": 61591, "create_new_folder": 58060, "credit_card": 59553, + "credit_card_clock": 62520, "credit_card_gear": 62765, "credit_card_heart": 62764, "credit_card_off": 58612, @@ -815,6 +889,7 @@ "crop_square": 58310, "crossword": 62949, "crowdsource": 60184, + "crown": 60595, "cruelty_free": 59289, "css": 60307, "csv": 59087, @@ -837,6 +912,7 @@ "dangerous": 59802, "dark_mode": 58652, "dashboard": 59505, + "dashboard_2": 62442, "dashboard_customize": 59803, "data_alert": 63478, "data_array": 60113, @@ -851,6 +927,9 @@ "data_thresholding": 60319, "data_usage": 61426, "database": 61966, + "database_off": 62484, + "database_search": 62350, + "database_upload": 62428, "dataset": 63726, "dataset_linked": 63727, "date_range": 59670, @@ -865,6 +944,9 @@ "delete_history": 62744, "delete_outline": 59694, "delete_sweep": 57708, + "delivery_dining": 60200, + "delivery_truck_bolt": 62370, + "delivery_truck_speed": 62369, "demography": 58505, "density_large": 60329, "density_medium": 60318, @@ -883,7 +965,10 @@ "desk": 63732, "deskphone": 63482, "desktop_access_disabled": 59805, + "desktop_cloud": 62427, + "desktop_cloud_stack": 62398, "desktop_landscape": 62558, + "desktop_landscape_add": 62521, "desktop_mac": 58123, "desktop_portrait": 62557, "desktop_windows": 58124, @@ -902,17 +987,20 @@ "developer_guide": 59806, "developer_mode": 57776, "developer_mode_tv": 59508, + "device_band": 62197, "device_hub": 58165, "device_reset": 59571, "device_thermostat": 57855, "device_unknown": 58169, "devices": 58150, "devices_fold": 60382, + "devices_fold_2": 62470, "devices_off": 63397, "devices_other": 58167, "devices_wearables": 63147, "dew_point": 63609, "diagnosis": 57512, + "diagonal_line": 62494, "dialer_sip": 57531, "dialogs": 59807, "dialpad": 57532, @@ -974,9 +1062,11 @@ "dock_to_bottom": 63462, "dock_to_left": 63461, "dock_to_right": 63460, + "docs": 60029, "docs_add_on": 61634, "docs_apps_script": 61635, "document_scanner": 58874, + "document_search": 62341, "domain": 59374, "domain_add": 60258, "domain_disabled": 57583, @@ -1016,6 +1106,7 @@ "drawing_recognition": 60160, "dresser": 57872, "drive_eta": 61431, + "drive_export": 62493, "drive_file_move": 59809, "drive_file_move_outline": 59809, "drive_file_move_rtl": 59809, @@ -1023,6 +1114,7 @@ "drive_folder_upload": 59811, "drive_fusiontable": 59000, "dropdown": 59812, + "dropper_eye": 62289, "dry": 61875, "dry_cleaning": 59992, "dual_screen": 63183, @@ -1034,7 +1126,12 @@ "e911_emergency": 61721, "e_mobiledata": 61442, "e_mobiledata_badge": 63459, + "ear_sound": 62294, + "earbud_case": 62247, + "earbud_left": 62246, + "earbud_right": 62245, "earbuds": 61443, + "earbuds_2": 62244, "earbuds_battery": 61444, "early_on": 58042, "earthquake": 63055, @@ -1046,7 +1143,10 @@ "edgesensor_high": 61445, "edgesensor_low": 61446, "edit": 61591, + "edit_arrow_down": 62336, + "edit_arrow_up": 62335, "edit_attributes": 58744, + "edit_audio": 62509, "edit_calendar": 59202, "edit_document": 63628, "edit_location": 58728, @@ -1094,6 +1194,10 @@ "empty_dashboard": 63556, "enable": 61832, "encrypted": 58771, + "encrypted_add": 62505, + "encrypted_add_circle": 62506, + "encrypted_minus_circle": 62504, + "encrypted_off": 62503, "endocrinology": 57513, "energy": 59814, "energy_program_saving": 61791, @@ -1106,6 +1210,11 @@ "enterprise_off": 60237, "equal": 63355, "equalizer": 57373, + "eraser_size_1": 62460, + "eraser_size_2": 62459, + "eraser_size_3": 62458, + "eraser_size_4": 62457, + "eraser_size_5": 62456, "error": 63670, "error_circle_rounded": 63670, "error_med": 58523, @@ -1139,6 +1248,8 @@ "expand_content": 63536, "expand_less": 58830, "expand_more": 58831, + "expansion_panels": 61328, + "expension_panels": 61328, "experiment": 59014, "explicit": 57374, "explore": 59514, @@ -1162,9 +1273,15 @@ "face_4": 63708, "face_5": 63709, "face_6": 63710, + "face_down": 62466, + "face_left": 62465, + "face_nod": 62464, "face_retouching_natural": 61262, "face_retouching_off": 61447, + "face_right": 62463, + "face_shake": 62462, "face_unlock": 61448, + "face_up": 62461, "fact_check": 61637, "factory": 60348, "falling": 62989, @@ -1174,6 +1291,8 @@ "family_link": 60185, "family_restroom": 61858, "family_star": 62759, + "fan_focus": 62260, + "fan_indirect": 62259, "farsight_digital": 62809, "fast_forward": 57375, "fast_rewind": 57376, @@ -1204,13 +1323,18 @@ "file_download": 61584, "file_download_done": 61585, "file_download_off": 58622, + "file_export": 62386, + "file_json": 62395, "file_map": 58053, + "file_map_stack": 62434, "file_open": 60147, + "file_png": 62396, "file_present": 59918, "file_save": 61823, "file_save_off": 58629, "file_upload": 61595, "file_upload_off": 63622, + "files": 60037, "filter": 58323, "filter_1": 58320, "filter_2": 58321, @@ -1224,6 +1348,7 @@ "filter_9_plus": 58330, "filter_alt": 61263, "filter_alt_off": 60210, + "filter_arrow_right": 62417, "filter_b_and_w": 58331, "filter_center_focus": 58332, "filter_drama": 58333, @@ -1249,11 +1374,15 @@ "fireplace": 59971, "first_page": 58844, "fit_page": 63354, + "fit_page_height": 62359, + "fit_page_width": 62358, "fit_screen": 59920, "fit_width": 63353, "fitness_center": 60227, "fitness_tracker": 62563, "flag": 61638, + "flag_2": 62479, + "flag_check": 62424, "flag_circle": 60152, "flag_filled": 61638, "flaky": 61264, @@ -1284,6 +1413,7 @@ "floor": 63204, "floor_lamp": 57886, "flourescent": 61565, + "flowchart": 62349, "flowsheet": 57518, "fluid": 58499, "fluid_balance": 63501, @@ -1297,11 +1427,17 @@ "foggy": 59416, "folded_hands": 62957, "folder": 58055, + "folder_check": 62423, + "folder_check_2": 62422, + "folder_code": 62408, "folder_copy": 60349, "folder_data": 62854, "folder_delete": 60212, + "folder_eye": 62421, + "folder_info": 62357, "folder_limited": 62692, "folder_managed": 63349, + "folder_match": 62420, "folder_off": 60291, "folder_open": 58056, "folder_shared": 58057, @@ -1318,6 +1454,7 @@ "forest": 60057, "fork_left": 60320, "fork_right": 60332, + "fork_spoon": 62436, "forklift": 63592, "format_align_center": 57908, "format_align_justify": 57909, @@ -1354,6 +1491,7 @@ "format_paint": 57923, "format_paragraph": 63589, "format_quote": 57924, + "format_quote_off": 62483, "format_shapes": 57950, "format_size": 57925, "format_strikethrough": 57926, @@ -1377,6 +1515,7 @@ "forward_media": 63220, "forward_to_inbox": 61831, "foundation": 61952, + "fragrance": 62277, "frame_inspect": 63346, "frame_person": 63654, "frame_person_mic": 62677, @@ -1418,12 +1557,15 @@ "gesture_select": 63063, "get_app": 61584, "gif": 59656, + "gif_2": 62478, "gif_box": 59299, "girl": 60264, "gite": 58763, "glass_cup": 63203, "globe": 58956, "globe_asia": 63385, + "globe_book": 62409, + "globe_location_pin": 62301, "globe_uk": 63384, "glucose": 58528, "glyphs": 63651, @@ -1440,10 +1582,17 @@ "gps_fixed": 58716, "gps_not_fixed": 57783, "gps_off": 57782, - "grade": 59525, + "grade": 61594, "gradient": 58345, "grading": 59983, "grain": 58346, + "graph_1": 62368, + "graph_2": 62367, + "graph_3": 62366, + "graph_4": 62365, + "graph_5": 62364, + "graph_6": 62363, + "graph_7": 62278, "graphic_eq": 57784, "grass": 61957, "grid_3x3": 61461, @@ -1459,6 +1608,7 @@ "group_add": 59376, "group_off": 59207, "group_remove": 59309, + "group_search": 62414, "group_work": 59526, "grouped_bar_chart": 61969, "groups": 62003, @@ -1474,12 +1624,14 @@ "hallway": 59128, "hand_bones": 63636, "hand_gesture": 61340, + "hand_gesture_off": 62451, "handheld_controller": 62662, "handshake": 60363, "handwriting_recognition": 60162, "handyman": 61707, "hangout_video": 57537, "hangout_video_off": 57538, + "hard_disk": 62426, "hard_drive": 63502, "hard_drive_2": 63396, "hardware": 59993, @@ -1510,6 +1662,7 @@ "heap_snapshot_thumbnail": 63340, "hearing": 57379, "hearing_aid": 62564, + "hearing_aid_disabled": 62384, "hearing_disabled": 61700, "heart_broken": 60098, "heart_check": 62986, @@ -1534,6 +1687,7 @@ "high_quality": 57380, "high_res": 62795, "highlight": 57951, + "highlight_alt": 61266, "highlight_keyboard_focus": 62736, "highlight_mouse_cursor": 62737, "highlight_off": 59528, @@ -1545,6 +1699,7 @@ "highlighter_size_5": 63335, "hiking": 58634, "history": 59571, + "history_2": 62438, "history_edu": 59966, "history_off": 62682, "history_toggle_off": 61821, @@ -1570,14 +1725,18 @@ "horizontal_distribute": 57364, "horizontal_rule": 61704, "horizontal_split": 59719, + "host": 62425, "hot_tub": 60230, "hotel": 58697, "hotel_class": 59203, "hourglass": 60415, + "hourglass_arrow_down": 62334, + "hourglass_arrow_up": 62333, "hourglass_bottom": 59996, "hourglass_disabled": 61267, "hourglass_empty": 59531, "hourglass_full": 59532, + "hourglass_pause": 62348, "hourglass_top": 59995, "house": 59972, "house_siding": 61954, @@ -1600,13 +1759,17 @@ "humidity_mid": 61797, "humidity_percentage": 63614, "hvac": 61710, + "hvac_max_defrost": 62258, "ice_skating": 58635, "icecream": 60009, "id_card": 62666, + "identity_aware_proxy": 58077, + "identity_platform": 60343, "ifl": 57381, "iframe": 63259, "iframe_off": 63260, "image": 58356, + "image_arrow_up": 62231, "image_aspect_ratio": 58357, "image_not_supported": 61718, "image_search": 58431, @@ -1620,6 +1783,10 @@ "inactive_order": 57596, "inbox": 57686, "inbox_customize": 63577, + "inbox_text": 62361, + "inbox_text_asterisk": 62304, + "inbox_text_person": 62302, + "inbox_text_share": 62300, "incomplete_circle": 59291, "indeterminate_check_box": 59657, "indeterminate_question_box": 62829, @@ -1632,6 +1799,7 @@ "ink_highlighter_move": 62756, "ink_marker": 59090, "ink_pen": 59091, + "ink_selection": 61266, "inpatient": 57598, "input": 59536, "input_circle": 63258, @@ -1727,6 +1895,7 @@ "lan": 60207, "landscape": 58724, "landscape_2": 62660, + "landscape_2_edit": 62224, "landscape_2_off": 62659, "landslide": 60375, "language": 59540, @@ -1748,6 +1917,7 @@ "language_us_dvorak": 63322, "laps": 63161, "laptop": 58142, + "laptop_car": 62413, "laptop_chromebook": 58143, "laptop_mac": 58144, "laptop_windows": 58145, @@ -1779,6 +1949,7 @@ "light_mode": 58648, "light_off": 59832, "lightbulb": 59663, + "lightbulb_2": 62435, "lightbulb_circle": 60414, "lightbulb_outline": 59663, "lightning_stand": 61348, @@ -1807,6 +1978,7 @@ "list": 59542, "list_alt": 57582, "list_alt_add": 63318, + "list_alt_check": 62430, "lists": 59833, "live_help": 57542, "live_tv": 58938, @@ -1856,6 +2028,7 @@ "lock": 59545, "lock_clock": 61271, "lock_open": 59544, + "lock_open_circle": 62305, "lock_open_right": 63062, "lock_outline": 59545, "lock_person": 63731, @@ -1907,6 +2080,7 @@ "manga": 62947, "manufacturing": 59174, "map": 58715, + "map_search": 62410, "maps_home_work": 61488, "maps_ugc": 61272, "margin": 59835, @@ -1922,8 +2096,10 @@ "markunread": 57689, "markunread_mailbox": 59547, "masked_transitions": 59182, + "masked_transitions_add": 62507, "masks": 61976, "match_case": 63217, + "match_case_off": 62319, "match_word": 63216, "matter": 59655, "maximize": 59696, @@ -1953,6 +2129,7 @@ "metro": 62580, "mfg_nest_yale_lock": 61725, "mic": 58141, + "mic_alert": 62354, "mic_double": 62929, "mic_external_off": 61273, "mic_external_on": 61274, @@ -1976,8 +2153,16 @@ "mixture_med": 58568, "mms": 58904, "mobile_friendly": 57856, + "mobile_hand": 62243, + "mobile_hand_left": 62227, + "mobile_hand_left_off": 62226, + "mobile_hand_off": 62228, + "mobile_loupe": 62242, "mobile_off": 57857, "mobile_screen_share": 57575, + "mobile_screensaver": 62241, + "mobile_sound_2": 62232, + "mobile_speaker": 62240, "mobiledata_off": 61492, "mode": 61591, "mode_comment": 57939, @@ -1996,8 +2181,10 @@ "mode_off_on": 61807, "mode_standby": 61495, "model_training": 61647, + "modeling": 62378, "monetization_on": 57955, "money": 58749, + "money_bag": 62446, "money_off": 61496, "money_off_csred": 61496, "monitor": 61275, @@ -2010,7 +2197,9 @@ "monorail": 62579, "mood": 59938, "mood_bad": 59379, + "moon_stars": 62287, "mop": 57997, + "moped": 60200, "more": 58905, "more_down": 61846, "more_horiz": 58835, @@ -2025,6 +2214,7 @@ "motion_photos_on": 59841, "motion_photos_pause": 61991, "motion_photos_paused": 61991, + "motion_play": 62475, "motion_sensor_active": 59282, "motion_sensor_alert": 59268, "motion_sensor_idle": 59267, @@ -2058,10 +2248,13 @@ "mp": 59843, "multicooker": 58003, "multiline_chart": 59103, + "multimodal_hand_eye": 62491, + "multiple_airports": 61355, "multiple_stop": 61881, "museum": 59958, "music_cast": 60186, "music_note": 58373, + "music_note_add": 62353, "music_off": 58432, "music_video": 57443, "my_location": 58716, @@ -2129,6 +2322,8 @@ "nest_wifi_router": 61747, "network_cell": 57785, "network_check": 58944, + "network_intel_node": 62321, + "network_intelligence": 61356, "network_intelligence_history": 62966, "network_intelligence_update": 62965, "network_locked": 58906, @@ -2154,6 +2349,7 @@ "next_plan": 61277, "next_week": 57706, "nfc": 57787, + "nfc_off": 62313, "night_shelter": 61937, "night_sight_auto": 61911, "night_sight_auto_off": 61945, @@ -2200,6 +2396,8 @@ "notification_add": 58265, "notification_important": 57348, "notification_multiple": 59074, + "notification_settings": 62311, + "notification_sound": 62291, "notifications": 59381, "notifications_active": 59383, "notifications_none": 59381, @@ -2233,6 +2431,7 @@ "open_with": 59551, "ophthalmology": 57621, "oral_disease": 57622, + "orbit": 62502, "order_approve": 63506, "order_play": 63505, "orders": 60180, @@ -2255,6 +2454,7 @@ "oven_gen": 59459, "overview": 58535, "overview_key": 63444, + "owl": 62388, "oxygen_saturation": 58590, "p2p": 62762, "pace": 63160, @@ -2263,6 +2463,8 @@ "package_2": 62825, "padding": 59848, "page_control": 59185, + "page_footer": 62339, + "page_header": 62340, "page_info": 62996, "pageless": 62729, "pages": 59385, @@ -2346,6 +2548,7 @@ "person_raised_hand": 62874, "person_remove": 61286, "person_search": 61702, + "person_shield": 58244, "personal_bag": 60174, "personal_bag_off": 60175, "personal_bag_question": 60176, @@ -2413,6 +2616,8 @@ "pin_drop": 58718, "pin_end": 59239, "pin_invoke": 59235, + "pinboard": 62379, + "pinboard_unread": 62380, "pinch": 60216, "pinch_zoom_in": 61946, "pinch_zoom_out": 61947, @@ -2422,6 +2627,7 @@ "place": 61915, "place_item": 61936, "plagiarism": 59994, + "planet": 62343, "planner_banner_ad_pt": 59026, "planner_review": 59028, "play_arrow": 57399, @@ -2439,6 +2645,7 @@ "playlist_add_circle": 59365, "playlist_play": 57439, "playlist_remove": 60288, + "plug_connect": 62298, "plumbing": 61703, "plus_one": 59392, "podcasts": 61512, @@ -2448,6 +2655,7 @@ "point_scan": 63244, "poker_chip": 62619, "policy": 59927, + "policy_alert": 62471, "poll": 61644, "polyline": 60347, "polymer": 59563, @@ -2464,6 +2672,7 @@ "power_input": 58166, "power_off": 58950, "power_rounded": 63687, + "power_settings_circle": 62488, "power_settings_new": 63687, "prayer_times": 63544, "precision_manufacturing": 61513, @@ -2524,8 +2733,8 @@ "quick_reference_all": 63489, "quick_reorder": 60181, "quickreply": 61292, - "quiet_time": 57849, - "quiet_time_active": 58001, + "quiet_time": 61785, + "quiet_time_active": 60278, "quiz": 61516, "r_mobiledata": 61517, "radar": 61518, @@ -2545,6 +2754,7 @@ "ramp_right": 60310, "range_hood": 57834, "rate_review": 58720, + "rate_review_rtl": 59142, "raven": 62805, "raw_off": 61519, "raw_on": 61520, @@ -2556,6 +2766,7 @@ "rebase_edit": 63558, "receipt": 59568, "receipt_long": 61294, + "receipt_long_off": 62474, "recent_actors": 57407, "recent_patient": 63496, "recenter": 62656, @@ -2591,6 +2802,9 @@ "repeat_on": 59862, "repeat_one": 57409, "repeat_one_on": 59863, + "replace_audio": 62545, + "replace_image": 62544, + "replace_video": 62543, "replay": 57410, "replay_10": 57433, "replay_30": 57434, @@ -2649,6 +2863,7 @@ "room_service": 60233, "rotate_90_degrees_ccw": 58392, "rotate_90_degrees_cw": 60075, + "rotate_auto": 62487, "rotate_left": 58393, "rotate_right": 58394, "roundabout_left": 60313, @@ -2656,6 +2871,7 @@ "rounded_corner": 59680, "route": 60109, "router": 58152, + "router_off": 62196, "routine": 57868, "rowing": 59681, "rss_feed": 57573, @@ -2680,6 +2896,7 @@ "save": 57697, "save_alt": 61584, "save_as": 60256, + "save_clock": 62360, "saved_search": 59921, "savings": 58091, "scale": 60255, @@ -2708,6 +2925,7 @@ "screen_share": 57570, "screenshot": 61526, "screenshot_frame": 63095, + "screenshot_frame_2": 62324, "screenshot_keyboard": 63443, "screenshot_monitor": 60424, "screenshot_region": 63442, @@ -2721,11 +2939,18 @@ "sd_storage": 58915, "sdk": 59168, "search": 59574, + "search_activity": 62437, "search_check": 63488, "search_check_2": 62569, "search_hands_free": 59030, "search_insights": 62652, "search_off": 60022, + "seat_cool_left": 62257, + "seat_cool_right": 62256, + "seat_heat_left": 62255, + "seat_heat_right": 62254, + "seat_vent_left": 62253, + "seat_vent_right": 62252, "security": 58154, "security_key": 62723, "security_update": 61554, @@ -2769,6 +2994,7 @@ "sentiment_very_satisfied": 59413, "sentiment_worried": 63137, "serif": 62636, + "server_person": 62397, "service_toolbox": 59159, "set_meal": 61930, "settings": 59576, @@ -2812,6 +3038,7 @@ "shape_recognition": 60161, "shapes": 58882, "share": 59405, + "share_eta": 58871, "share_location": 61535, "share_off": 63179, "share_reviews": 63652, @@ -2826,6 +3053,7 @@ "shield_moon": 60073, "shield_person": 63056, "shield_question": 62761, + "shield_watch": 62223, "shield_with_heart": 59279, "shield_with_house": 59277, "shift": 58866, @@ -2835,6 +3063,7 @@ "shop_2": 59594, "shop_two": 59594, "shopping_bag": 61900, + "shopping_bag_speed": 62362, "shopping_basket": 59595, "shopping_cart": 59596, "shopping_cart_checkout": 60296, @@ -2884,8 +3113,13 @@ "sim_card": 58155, "sim_card_alert": 61527, "sim_card_download": 61544, + "simulation": 62433, "single_bed": 59976, "sip": 61545, + "siren": 62375, + "siren_check": 62374, + "siren_open": 62373, + "siren_question": 62372, "skateboarding": 58641, "skeleton": 63641, "skillet": 62787, @@ -2893,6 +3127,7 @@ "skip_next": 57412, "skip_previous": 57413, "skull": 63642, + "skull_list": 62320, "slab_serif": 62635, "sledding": 58642, "sleep": 57875, @@ -2909,6 +3144,7 @@ "smart_screen": 61547, "smart_toy": 61548, "smartphone": 58156, + "smartphone_camera": 62542, "smb_share": 63307, "smoke_free": 60234, "smoking_rooms": 60235, @@ -2972,6 +3208,11 @@ "speed_2x": 62699, "speed_camera": 62576, "spellcheck": 59598, + "split_scene": 62399, + "split_scene_down": 62207, + "split_scene_left": 62206, + "split_scene_right": 62205, + "split_scene_up": 62204, "splitscreen": 61549, "splitscreen_add": 62717, "splitscreen_bottom": 63094, @@ -3007,9 +3248,12 @@ "sprinkler": 58010, "sprint": 63519, "square": 60214, + "square_dot": 62387, "square_foot": 59977, "ssid_chart": 60262, "stack": 62985, + "stack_group": 62297, + "stack_hexagon": 62492, "stack_off": 62984, "stack_star": 62983, "stacked_bar_chart": 59878, @@ -3029,7 +3273,9 @@ "star_purple500": 61594, "star_rate": 61676, "star_rate_half": 60485, + "star_shine": 62237, "stars": 59600, + "stars_2": 62236, "start": 57481, "stat_0": 59031, "stat_1": 59032, @@ -3042,6 +3288,7 @@ "stay_current_portrait": 57556, "stay_primary_landscape": 57557, "stay_primary_portrait": 57558, + "steering_wheel_heat": 62251, "step": 63230, "step_into": 63233, "step_out": 63232, @@ -3077,8 +3324,13 @@ "style": 58397, "styler": 57971, "stylus": 62980, + "stylus_brush": 62310, + "stylus_fountain_pen": 62309, + "stylus_highlighter": 62308, "stylus_laser_pointer": 63303, "stylus_note": 62979, + "stylus_pen": 62307, + "stylus_pencil": 62306, "subdirectory_arrow_left": 58841, "subdirectory_arrow_right": 58842, "subheader": 59882, @@ -3086,6 +3338,7 @@ "subscript": 61713, "subscriptions": 57444, "subtitles": 57416, + "subtitles_gear": 62293, "subtitles_off": 61298, "subway": 58735, "summarize": 61553, @@ -3121,6 +3374,7 @@ "switch": 57844, "switch_access": 63229, "switch_access_2": 62726, + "switch_access_3": 62285, "switch_access_shortcut": 59361, "switch_access_shortcut_add": 59362, "switch_account": 59885, @@ -3135,6 +3389,9 @@ "synagogue": 60080, "sync": 58919, "sync_alt": 59928, + "sync_arrow_down": 62332, + "sync_arrow_up": 62331, + "sync_desktop": 62490, "sync_disabled": 58920, "sync_lock": 60142, "sync_problem": 58921, @@ -3147,17 +3404,22 @@ "system_update_alt": 59607, "tab": 59608, "tab_close": 63301, + "tab_close_inactive": 62416, "tab_close_right": 63302, "tab_duplicate": 63300, "tab_group": 63299, + "tab_inactive": 62523, "tab_move": 63298, "tab_new_right": 63297, "tab_recent": 63296, + "tab_search": 62194, "tab_unselected": 59609, "table": 61841, "table_bar": 60114, "table_chart": 57957, "table_chart_view": 63215, + "table_convert": 62407, + "table_edit": 62406, "table_eye": 62566, "table_lamp": 57842, "table_restaurant": 60102, @@ -3166,6 +3428,7 @@ "table_view": 61886, "tablet": 58159, "tablet_android": 58160, + "tablet_camera": 62541, "tablet_mac": 58161, "tabs": 59886, "tactic": 62820, @@ -3190,6 +3453,7 @@ "terminal": 60302, "terrain": 58724, "text_ad": 59176, + "text_compare": 62405, "text_decrease": 60125, "text_fields": 57954, "text_fields_alt": 59889, @@ -3226,10 +3490,13 @@ "thermometer_loss": 63191, "thermometer_minus": 62849, "thermostat": 61558, + "thermostat_arrow_down": 62330, + "thermostat_arrow_up": 62329, "thermostat_auto": 61559, "thermostat_carbon": 61816, "things_to_do": 60202, "thread_unread": 62713, + "threat_intelligence": 60141, "thumb_down": 62840, "thumb_down_alt": 62840, "thumb_down_filled": 62840, @@ -3245,6 +3512,9 @@ "thunderstorm": 60379, "tibia": 63643, "tibia_alt": 63644, + "tile_large": 62403, + "tile_medium": 62402, + "tile_small": 62401, "time_auto": 61668, "time_to_leave": 61431, "timelapse": 58402, @@ -3258,6 +3528,8 @@ "timer_3_select": 61563, "timer_5": 62641, "timer_5_shutter": 62642, + "timer_arrow_down": 62328, + "timer_arrow_up": 62327, "timer_off": 58406, "timer_pause": 62651, "timer_play": 62650, @@ -3283,12 +3555,16 @@ "tools_power_drill": 57833, "tools_wrench": 63693, "tooltip": 59896, + "tooltip_2": 62445, "top_panel_close": 63283, "top_panel_open": 63282, "topic": 61896, "tornado": 57753, "total_dissolved_solids": 63607, "touch_app": 59667, + "touch_double": 62347, + "touch_long": 62346, + "touch_triple": 62345, "touchpad_mouse": 63111, "touchpad_mouse_off": 62694, "tour": 61301, @@ -3297,6 +3573,8 @@ "toys_fan": 63623, "track_changes": 59617, "trackpad_input": 62663, + "trackpad_input_2": 62473, + "trackpad_input_3": 62472, "traffic": 58725, "traffic_jam": 62575, "trail_length": 60254, @@ -3309,6 +3587,7 @@ "transform": 58408, "transgender": 58765, "transit_enterexit": 58745, + "transit_ticket": 62449, "transition_chop": 62734, "transition_dissolve": 62733, "transition_fade": 62732, @@ -3343,8 +3622,10 @@ "turned_in": 59623, "turned_in_not": 59623, "tv": 58939, + "tv_displays": 62444, "tv_gen": 59440, "tv_guide": 57820, + "tv_next": 62443, "tv_off": 58951, "tv_options_edit_channels": 57821, "tv_options_input_settings": 57822, @@ -3352,6 +3633,7 @@ "tv_signin": 59163, "tv_with_assistant": 59269, "two_pager": 62751, + "two_pager_store": 62404, "two_wheeler": 59897, "type_specimen": 63728, "u_turn_left": 60321, @@ -3383,6 +3665,7 @@ "update": 59683, "update_disabled": 57461, "upgrade": 61691, + "upi_pay": 62415, "upload": 61595, "upload_2": 62753, "upload_file": 59900, @@ -3402,6 +3685,7 @@ "variables": 63569, "ventilator": 57657, "verified": 61302, + "verified_off": 62222, "verified_user": 61459, "vertical_align_bottom": 57944, "vertical_align_center": 57945, @@ -3413,6 +3697,7 @@ "vibration": 58925, "video_call": 57456, "video_camera_back": 61567, + "video_camera_back_add": 62476, "video_camera_front": 61568, "video_camera_front_off": 63547, "video_chat": 63648, @@ -3423,10 +3708,12 @@ "video_settings": 60021, "video_stable": 61569, "videocam": 57419, + "videocam_alert": 62352, "videocam_off": 57420, "videogame_asset": 58168, "videogame_asset_off": 58624, "view_agenda": 59625, + "view_apps": 62326, "view_array": 59626, "view_carousel": 59627, "view_column": 59628, @@ -3444,6 +3731,7 @@ "view_kanban": 60287, "view_list": 59631, "view_module": 59632, + "view_object_track": 62514, "view_quilt": 59633, "view_real_size": 62658, "view_sidebar": 61716, @@ -3461,7 +3749,9 @@ "voice_chat": 58926, "voice_over_off": 59722, "voice_selection": 62858, + "voice_selection_off": 62508, "voicemail": 57561, + "voicemail_2": 62290, "volcano": 60378, "volume_down": 57421, "volume_down_alt": 59292, @@ -3474,6 +3764,7 @@ "vpn_key_alert": 63180, "vpn_key_off": 60282, "vpn_lock": 58927, + "vpn_lock_2": 62288, "vr180_create2d": 61386, "vr180_create2d_off": 62833, "vrpano": 61570, @@ -3482,6 +3773,8 @@ "wallet": 63743, "wallpaper": 57788, "wallpaper_slideshow": 63090, + "wand_shine": 62239, + "wand_stars": 62238, "ward": 57660, "warehouse": 60344, "warning": 61571, @@ -3539,6 +3832,9 @@ "whatshot": 59406, "wheelchair_pickup": 61867, "where_to_vote": 57719, + "widget_medium": 62394, + "widget_small": 62393, + "widget_width": 62392, "widgets": 57789, "width": 63280, "width_full": 63733, @@ -3552,6 +3848,9 @@ "wifi_calling_1": 61671, "wifi_calling_2": 61686, "wifi_calling_3": 61671, + "wifi_calling_bar_1": 62540, + "wifi_calling_bar_2": 62539, + "wifi_calling_bar_3": 62538, "wifi_channel": 60266, "wifi_find": 60209, "wifi_home": 63089, @@ -3569,6 +3868,9 @@ "window_closed": 59262, "window_open": 59276, "window_sensor": 58043, + "windshield_defrost_front": 62250, + "windshield_defrost_rear": 62249, + "windshield_heat_front": 62248, "wine_bar": 61928, "woman": 57662, "woman_2": 63719, diff --git a/client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined-Regular.ttf b/client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined-Regular.ttf new file mode 100644 index 0000000000..26f767e075 Binary files /dev/null and b/client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined-Regular.ttf differ diff --git a/client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined.ttf b/client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined.ttf deleted file mode 100644 index 255db6f479..0000000000 Binary files a/client/ayon_core/vendor/python/qtmaterialsymbols/resources/MaterialSymbolsOutlined.ttf and /dev/null differ diff --git a/client/ayon_core/vendor/python/qtmaterialsymbols/resources/__init__.py b/client/ayon_core/vendor/python/qtmaterialsymbols/resources/__init__.py index 6da4c6986b..581b37c213 100644 --- a/client/ayon_core/vendor/python/qtmaterialsymbols/resources/__init__.py +++ b/client/ayon_core/vendor/python/qtmaterialsymbols/resources/__init__.py @@ -5,12 +5,32 @@ CURRENT_DIR = os.path.dirname(os.path.abspath(__file__)) def get_font_filepath( - font_name: Optional[str] = "MaterialSymbolsOutlined" + font_name: Optional[str] = "MaterialSymbolsOutlined-Regular" ) -> str: return os.path.join(CURRENT_DIR, f"{font_name}.ttf") def get_mapping_filepath( - font_name: Optional[str] = "MaterialSymbolsOutlined" + font_name: Optional[str] = "MaterialSymbolsOutlined-Regular" ) -> str: return os.path.join(CURRENT_DIR, f"{font_name}.json") + + +def regenerate_mapping(): + """Regenerate the MaterialSymbolsOutlined.json file, assuming + MaterialSymbolsOutlined.codepoints and the TrueType font file have been + updated to support the new symbols. + """ + import json + jfile = get_mapping_filepath() + cpfile = jfile.replace(".json", ".codepoints") + with open(cpfile, "r") as cpf: + codepoints = cpf.read() + + mapping = {} + for cp in codepoints.splitlines(): + name, code = cp.split() + mapping[name] = int(f"0x{code}", 16) + + with open(jfile, "w") as jf: + json.dump(mapping, jf, indent=4) diff --git a/client/ayon_core/version.py b/client/ayon_core/version.py index 4fd7bde336..9c43e80bf1 100644 --- a/client/ayon_core/version.py +++ b/client/ayon_core/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON addon 'core' version.""" -__version__ = "1.2.0+dev" +__version__ = "1.3.1+dev" diff --git a/package.py b/package.py index 601d703857..47e3b39083 100644 --- a/package.py +++ b/package.py @@ -1,6 +1,6 @@ name = "core" title = "Core" -version = "1.2.0+dev" +version = "1.3.1+dev" client_dir = "ayon_core" diff --git a/pyproject.toml b/pyproject.toml index c7e2bb5000..f919a9589b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ [tool.poetry] name = "ayon-core" -version = "1.2.0+dev" +version = "1.3.1+dev" description = "" authors = ["Ynput Team "] readme = "README.md" diff --git a/server/settings/tools.py b/server/settings/tools.py index 6b07910454..815ef40f8e 100644 --- a/server/settings/tools.py +++ b/server/settings/tools.py @@ -358,6 +358,14 @@ class PublishToolModel(BaseSettingsModel): title="Custom Staging Dir Profiles" ) ) + comment_minimum_required_chars: int = SettingsField( + 0, + title="Publish comment minimum required characters", + description=( + "Minimum number of characters required in the comment field " + "before the publisher UI is allowed to continue publishing" + ) + ) class GlobalToolsModel(BaseSettingsModel): @@ -671,6 +679,7 @@ DEFAULT_TOOLS_VALUES = { "task_names": [], "template_name": "simpleUnrealTextureHero" } - ] + ], + "comment_minimum_required_chars": 0, } }