@ -1,301 +0,0 @@
@@ -1,301 +0,0 @@
|
||||
<RCC> |
||||
<qresource prefix="/InstrumentValueIcons"> |
||||
<file alias="clipboard.svg">resources/InstrumentValueIcons/clipboard.svg</file> |
||||
<file alias="credit-card.svg">resources/InstrumentValueIcons/credit-card.svg</file> |
||||
<file alias="bookmark copy 2.svg">resources/InstrumentValueIcons/bookmark copy 2.svg</file> |
||||
<file alias="library.svg">resources/InstrumentValueIcons/library.svg</file> |
||||
<file alias="mouse.svg">resources/InstrumentValueIcons/mouse.svg</file> |
||||
<file alias="printer.svg">resources/InstrumentValueIcons/printer.svg</file> |
||||
<file alias="thumbs-up.svg">resources/InstrumentValueIcons/thumbs-up.svg</file> |
||||
<file alias="arrow-thin-up.svg">resources/InstrumentValueIcons/arrow-thin-up.svg</file> |
||||
<file alias="pause-outline.svg">resources/InstrumentValueIcons/pause-outline.svg</file> |
||||
<file alias="music-artist.svg">resources/InstrumentValueIcons/music-artist.svg</file> |
||||
<file alias="location-park.svg">resources/InstrumentValueIcons/location-park.svg</file> |
||||
<file alias="pen-tool.svg">resources/InstrumentValueIcons/pen-tool.svg</file> |
||||
<file alias="color-palette.svg">resources/InstrumentValueIcons/color-palette.svg</file> |
||||
<file alias="announcement.svg">resources/InstrumentValueIcons/announcement.svg</file> |
||||
<file alias="inbox-check.svg">resources/InstrumentValueIcons/inbox-check.svg</file> |
||||
<file alias="radio.svg">resources/InstrumentValueIcons/radio.svg</file> |
||||
<file alias="close-solid.svg">resources/InstrumentValueIcons/close-solid.svg</file> |
||||
<file alias="inbox.svg">resources/InstrumentValueIcons/inbox.svg</file> |
||||
<file alias="user-add.svg">resources/InstrumentValueIcons/user-add.svg</file> |
||||
<file alias="text-box.svg">resources/InstrumentValueIcons/text-box.svg</file> |
||||
<file alias="queue.svg">resources/InstrumentValueIcons/queue.svg</file> |
||||
<file alias="minus-outline.svg">resources/InstrumentValueIcons/minus-outline.svg</file> |
||||
<file alias="user-solid-square.svg">resources/InstrumentValueIcons/user-solid-square.svg</file> |
||||
<file alias="list-bullet.svg">resources/InstrumentValueIcons/list-bullet.svg</file> |
||||
<file alias="indent-decrease.svg">resources/InstrumentValueIcons/indent-decrease.svg</file> |
||||
<file alias="yin-yang.svg">resources/InstrumentValueIcons/yin-yang.svg</file> |
||||
<file alias="share-alt.svg">resources/InstrumentValueIcons/share-alt.svg</file> |
||||
<file alias="battery-full.svg">resources/InstrumentValueIcons/battery-full.svg</file> |
||||
<file alias="folder-outline.svg">resources/InstrumentValueIcons/folder-outline.svg</file> |
||||
<file alias="bookmark copy 3.svg">resources/InstrumentValueIcons/bookmark copy 3.svg</file> |
||||
<file alias="browser-window-open.svg">resources/InstrumentValueIcons/browser-window-open.svg</file> |
||||
<file alias="wallet.svg">resources/InstrumentValueIcons/wallet.svg</file> |
||||
<file alias="box.svg">resources/InstrumentValueIcons/box.svg</file> |
||||
<file alias="attachment.svg">resources/InstrumentValueIcons/attachment.svg</file> |
||||
<file alias="cloud.svg">resources/InstrumentValueIcons/cloud.svg</file> |
||||
<file alias="radar copy 2.svg">resources/InstrumentValueIcons/radar copy 2.svg</file> |
||||
<file alias="directions.svg">resources/InstrumentValueIcons/directions.svg</file> |
||||
<file alias="view-hide.svg">resources/InstrumentValueIcons/view-hide.svg</file> |
||||
<file alias="hour-glass.svg">resources/InstrumentValueIcons/hour-glass.svg</file> |
||||
<file alias="globe.svg">resources/InstrumentValueIcons/globe.svg</file> |
||||
<file alias="volume-off.svg">resources/InstrumentValueIcons/volume-off.svg</file> |
||||
<file alias="station.svg">resources/InstrumentValueIcons/station.svg</file> |
||||
<file alias="dots-horizontal-triple.svg">resources/InstrumentValueIcons/dots-horizontal-triple.svg</file> |
||||
<file alias="save-disk.svg">resources/InstrumentValueIcons/save-disk.svg</file> |
||||
<file alias="star-full.svg">resources/InstrumentValueIcons/star-full.svg</file> |
||||
<file alias="mood-sad-solid.svg">resources/InstrumentValueIcons/mood-sad-solid.svg</file> |
||||
<file alias="chat-bubble-dots.svg">resources/InstrumentValueIcons/chat-bubble-dots.svg</file> |
||||
<file alias="window-open.svg">resources/InstrumentValueIcons/window-open.svg</file> |
||||
<file alias="timer.svg">resources/InstrumentValueIcons/timer.svg</file> |
||||
<file alias="explore.svg">resources/InstrumentValueIcons/explore.svg</file> |
||||
<file alias="step-backward.svg">resources/InstrumentValueIcons/step-backward.svg</file> |
||||
<file alias="mood-happy-outline.svg">resources/InstrumentValueIcons/mood-happy-outline.svg</file> |
||||
<file alias="add-outline.svg">resources/InstrumentValueIcons/add-outline.svg</file> |
||||
<file alias="zoom-out.svg">resources/InstrumentValueIcons/zoom-out.svg</file> |
||||
<file alias="fast-forward.svg">resources/InstrumentValueIcons/fast-forward.svg</file> |
||||
<file alias="network.svg">resources/InstrumentValueIcons/network.svg</file> |
||||
<file alias="light-bulb.svg">resources/InstrumentValueIcons/light-bulb.svg</file> |
||||
<file alias="text-decoration.svg">resources/InstrumentValueIcons/text-decoration.svg</file> |
||||
<file alias="user-group.svg">resources/InstrumentValueIcons/user-group.svg</file> |
||||
<file alias="repost.svg">resources/InstrumentValueIcons/repost.svg</file> |
||||
<file alias="key.svg">resources/InstrumentValueIcons/key.svg</file> |
||||
<file alias="user-solid-circle.svg">resources/InstrumentValueIcons/user-solid-circle.svg</file> |
||||
<file alias="target.svg">resources/InstrumentValueIcons/target.svg</file> |
||||
<file alias="date-add.svg">resources/InstrumentValueIcons/date-add.svg</file> |
||||
<file alias="dial-pad.svg">resources/InstrumentValueIcons/dial-pad.svg</file> |
||||
<file alias="stand-by.svg">resources/InstrumentValueIcons/stand-by.svg</file> |
||||
<file alias="flashlight.svg">resources/InstrumentValueIcons/flashlight.svg</file> |
||||
<file alias="mood-neutral-outline.svg">resources/InstrumentValueIcons/mood-neutral-outline.svg</file> |
||||
<file alias="view-column.svg">resources/InstrumentValueIcons/view-column.svg</file> |
||||
<file alias="chart.svg">resources/InstrumentValueIcons/chart.svg</file> |
||||
<file alias="bluetooth.svg">resources/InstrumentValueIcons/bluetooth.svg</file> |
||||
<file alias="window-new.svg">resources/InstrumentValueIcons/window-new.svg</file> |
||||
<file alias="location-hotel.svg">resources/InstrumentValueIcons/location-hotel.svg</file> |
||||
<file alias="edit-pencil.svg">resources/InstrumentValueIcons/edit-pencil.svg</file> |
||||
<file alias="location-gas-station.svg">resources/InstrumentValueIcons/location-gas-station.svg</file> |
||||
<file alias="tablet.svg">resources/InstrumentValueIcons/tablet.svg</file> |
||||
<file alias="layers.svg">resources/InstrumentValueIcons/layers.svg</file> |
||||
<file alias="brightness-up.svg">resources/InstrumentValueIcons/brightness-up.svg</file> |
||||
<file alias="cloud-upload.svg">resources/InstrumentValueIcons/cloud-upload.svg</file> |
||||
<file alias="cheveron-outline-right.svg">resources/InstrumentValueIcons/cheveron-outline-right.svg</file> |
||||
<file alias="information-outline.svg">resources/InstrumentValueIcons/information-outline.svg</file> |
||||
<file alias="chart-pie.svg">resources/InstrumentValueIcons/chart-pie.svg</file> |
||||
<file alias="screen-full.svg">resources/InstrumentValueIcons/screen-full.svg</file> |
||||
<file alias="education.svg">resources/InstrumentValueIcons/education.svg</file> |
||||
<file alias="vector.svg">resources/InstrumentValueIcons/vector.svg</file> |
||||
<file alias="load-balancer.svg">resources/InstrumentValueIcons/load-balancer.svg</file> |
||||
<file alias="paste.svg">resources/InstrumentValueIcons/paste.svg</file> |
||||
<file alias="conversation.svg">resources/InstrumentValueIcons/conversation.svg</file> |
||||
<file alias="arrow-outline-down.svg">resources/InstrumentValueIcons/arrow-outline-down.svg</file> |
||||
<file alias="airplane.svg">resources/InstrumentValueIcons/airplane.svg</file> |
||||
<file alias="cheveron-right.svg">resources/InstrumentValueIcons/cheveron-right.svg</file> |
||||
<file alias="swap.svg">resources/InstrumentValueIcons/swap.svg</file> |
||||
<file alias="border-outer.svg">resources/InstrumentValueIcons/border-outer.svg</file> |
||||
<file alias="watch.svg">resources/InstrumentValueIcons/watch.svg</file> |
||||
<file alias="notifications.svg">resources/InstrumentValueIcons/notifications.svg</file> |
||||
<file alias="refresh.svg">resources/InstrumentValueIcons/refresh.svg</file> |
||||
<file alias="border-left.svg">resources/InstrumentValueIcons/border-left.svg</file> |
||||
<file alias="border-vertical.svg">resources/InstrumentValueIcons/border-vertical.svg</file> |
||||
<file alias="filter.svg">resources/InstrumentValueIcons/filter.svg</file> |
||||
<file alias="brightness-down.svg">resources/InstrumentValueIcons/brightness-down.svg</file> |
||||
<file alias="mic.svg">resources/InstrumentValueIcons/mic.svg</file> |
||||
<file alias="link.svg">resources/InstrumentValueIcons/link.svg</file> |
||||
<file alias="format-font-size.svg">resources/InstrumentValueIcons/format-font-size.svg</file> |
||||
<file alias="volume-mute.svg">resources/InstrumentValueIcons/volume-mute.svg</file> |
||||
<file alias="bug.svg">resources/InstrumentValueIcons/bug.svg</file> |
||||
<file alias="indent-increase.svg">resources/InstrumentValueIcons/indent-increase.svg</file> |
||||
<file alias="add-solid.svg">resources/InstrumentValueIcons/add-solid.svg</file> |
||||
<file alias="code.svg">resources/InstrumentValueIcons/code.svg</file> |
||||
<file alias="arrow-down.svg">resources/InstrumentValueIcons/arrow-down.svg</file> |
||||
<file alias="pause-solid.svg">resources/InstrumentValueIcons/pause-solid.svg</file> |
||||
<file alias="folder.svg">resources/InstrumentValueIcons/folder.svg</file> |
||||
<file alias="shopping-cart.svg">resources/InstrumentValueIcons/shopping-cart.svg</file> |
||||
<file alias="inbox-download.svg">resources/InstrumentValueIcons/inbox-download.svg</file> |
||||
<file alias="bookmark-outline-add.svg">resources/InstrumentValueIcons/bookmark-outline-add.svg</file> |
||||
<file alias="play-outline.svg">resources/InstrumentValueIcons/play-outline.svg</file> |
||||
<file alias="music-notes.svg">resources/InstrumentValueIcons/music-notes.svg</file> |
||||
<file alias="user.svg">resources/InstrumentValueIcons/user.svg</file> |
||||
<file alias="computer-desktop.svg">resources/InstrumentValueIcons/computer-desktop.svg</file> |
||||
<file alias="step-forward.svg">resources/InstrumentValueIcons/step-forward.svg</file> |
||||
<file alias="inbox-full.svg">resources/InstrumentValueIcons/inbox-full.svg</file> |
||||
<file alias="border-none.svg">resources/InstrumentValueIcons/border-none.svg</file> |
||||
<file alias="map.svg">resources/InstrumentValueIcons/map.svg</file> |
||||
<file alias="information-solid.svg">resources/InstrumentValueIcons/information-solid.svg</file> |
||||
<file alias="format-text-size.svg">resources/InstrumentValueIcons/format-text-size.svg</file> |
||||
<file alias="location.svg">resources/InstrumentValueIcons/location.svg</file> |
||||
<file alias="close-outline.svg">resources/InstrumentValueIcons/close-outline.svg</file> |
||||
<file alias="dots-horizontal-double.svg">resources/InstrumentValueIcons/dots-horizontal-double.svg</file> |
||||
<file alias="servers.svg">resources/InstrumentValueIcons/servers.svg</file> |
||||
<file alias="trophy.svg">resources/InstrumentValueIcons/trophy.svg</file> |
||||
<file alias="arrow-thick-right.svg">resources/InstrumentValueIcons/arrow-thick-right.svg</file> |
||||
<file alias="radar.svg">resources/InstrumentValueIcons/radar.svg</file> |
||||
<file alias="fast-rewind.svg">resources/InstrumentValueIcons/fast-rewind.svg</file> |
||||
<file alias="hard-drive.svg">resources/InstrumentValueIcons/hard-drive.svg</file> |
||||
<file alias="cheveron-outline-down.svg">resources/InstrumentValueIcons/cheveron-outline-down.svg</file> |
||||
<file alias="trash.svg">resources/InstrumentValueIcons/trash.svg</file> |
||||
<file alias="forward.svg">resources/InstrumentValueIcons/forward.svg</file> |
||||
<file alias="backspace.svg">resources/InstrumentValueIcons/backspace.svg</file> |
||||
<file alias="location-shopping.svg">resources/InstrumentValueIcons/location-shopping.svg</file> |
||||
<file alias="mobile-devices.svg">resources/InstrumentValueIcons/mobile-devices.svg</file> |
||||
<file alias="cheveron-left.svg">resources/InstrumentValueIcons/cheveron-left.svg</file> |
||||
<file alias="travel-walk.svg">resources/InstrumentValueIcons/travel-walk.svg</file> |
||||
<file alias="computer-laptop.svg">resources/InstrumentValueIcons/computer-laptop.svg</file> |
||||
<file alias="dashboard.svg">resources/InstrumentValueIcons/dashboard.svg</file> |
||||
<file alias="video-camera.svg">resources/InstrumentValueIcons/video-camera.svg</file> |
||||
<file alias="thermometer.svg">resources/InstrumentValueIcons/thermometer.svg</file> |
||||
<file alias="cog.svg">resources/InstrumentValueIcons/cog.svg</file> |
||||
<file alias="location-marina.svg">resources/InstrumentValueIcons/location-marina.svg</file> |
||||
<file alias="location-food.svg">resources/InstrumentValueIcons/location-food.svg</file> |
||||
<file alias="reply.svg">resources/InstrumentValueIcons/reply.svg</file> |
||||
<file alias="arrow-thick-left.svg">resources/InstrumentValueIcons/arrow-thick-left.svg</file> |
||||
<file alias="subdirectory-right.svg">resources/InstrumentValueIcons/subdirectory-right.svg</file> |
||||
<file alias="backward.svg">resources/InstrumentValueIcons/backward.svg</file> |
||||
<file alias="download.svg">resources/InstrumentValueIcons/download.svg</file> |
||||
<file alias="coffee.svg">resources/InstrumentValueIcons/coffee.svg</file> |
||||
<file alias="keyboard.svg">resources/InstrumentValueIcons/keyboard.svg</file> |
||||
<file alias="film.svg">resources/InstrumentValueIcons/film.svg</file> |
||||
<file alias="book-reference.svg">resources/InstrumentValueIcons/book-reference.svg</file> |
||||
<file alias="php-elephant.svg">resources/InstrumentValueIcons/php-elephant.svg</file> |
||||
<file alias="chart-bar.svg">resources/InstrumentValueIcons/chart-bar.svg</file> |
||||
<file alias="backward-step.svg">resources/InstrumentValueIcons/backward-step.svg</file> |
||||
<file alias="cheveron-outline-up.svg">resources/InstrumentValueIcons/cheveron-outline-up.svg</file> |
||||
<file alias="cheveron-outline-left.svg">resources/InstrumentValueIcons/cheveron-outline-left.svg</file> |
||||
<file alias="play.svg">resources/InstrumentValueIcons/play.svg</file> |
||||
<file alias="border-right.svg">resources/InstrumentValueIcons/border-right.svg</file> |
||||
<file alias="portfolio.svg">resources/InstrumentValueIcons/portfolio.svg</file> |
||||
<file alias="bookmark.svg">resources/InstrumentValueIcons/bookmark.svg</file> |
||||
<file alias="hot.svg">resources/InstrumentValueIcons/hot.svg</file> |
||||
<file alias="align-justified.svg">resources/InstrumentValueIcons/align-justified.svg</file> |
||||
<file alias="border-horizontal.svg">resources/InstrumentValueIcons/border-horizontal.svg</file> |
||||
<file alias="arrow-outline-up.svg">resources/InstrumentValueIcons/arrow-outline-up.svg</file> |
||||
<file alias="apparel.svg">resources/InstrumentValueIcons/apparel.svg</file> |
||||
<file alias="arrow-thin-down.svg">resources/InstrumentValueIcons/arrow-thin-down.svg</file> |
||||
<file alias="mood-happy-solid.svg">resources/InstrumentValueIcons/mood-happy-solid.svg</file> |
||||
<file alias="home.svg">resources/InstrumentValueIcons/home.svg</file> |
||||
<file alias="mood-sad-outline.svg">resources/InstrumentValueIcons/mood-sad-outline.svg</file> |
||||
<file alias="exclamation-solid.svg">resources/InstrumentValueIcons/exclamation-solid.svg</file> |
||||
<file alias="translate.svg">resources/InstrumentValueIcons/translate.svg</file> |
||||
<file alias="document.svg">resources/InstrumentValueIcons/document.svg</file> |
||||
<file alias="share-01.svg">resources/InstrumentValueIcons/share-01.svg</file> |
||||
<file alias="gift.svg">resources/InstrumentValueIcons/gift.svg</file> |
||||
<file alias="volume-up.svg">resources/InstrumentValueIcons/volume-up.svg</file> |
||||
<file alias="travel-bus.svg">resources/InstrumentValueIcons/travel-bus.svg</file> |
||||
<file alias="envelope.svg">resources/InstrumentValueIcons/envelope.svg</file> |
||||
<file alias="camera.svg">resources/InstrumentValueIcons/camera.svg</file> |
||||
<file alias="view-list.svg">resources/InstrumentValueIcons/view-list.svg</file> |
||||
<file alias="time.svg">resources/InstrumentValueIcons/time.svg</file> |
||||
<file alias="lock-closed.svg">resources/InstrumentValueIcons/lock-closed.svg</file> |
||||
<file alias="ticket.svg">resources/InstrumentValueIcons/ticket.svg</file> |
||||
<file alias="edit-cut.svg">resources/InstrumentValueIcons/edit-cut.svg</file> |
||||
<file alias="music-playlist.svg">resources/InstrumentValueIcons/music-playlist.svg</file> |
||||
<file alias="currency-dollar.svg">resources/InstrumentValueIcons/currency-dollar.svg</file> |
||||
<file alias="exclamation-outline.svg">resources/InstrumentValueIcons/exclamation-outline.svg</file> |
||||
<file alias="anchor.svg">resources/InstrumentValueIcons/anchor.svg</file> |
||||
<file alias="edit-copy.svg">resources/InstrumentValueIcons/edit-copy.svg</file> |
||||
<file alias="pause.svg">resources/InstrumentValueIcons/pause.svg</file> |
||||
<file alias="photo.svg">resources/InstrumentValueIcons/photo.svg</file> |
||||
<file alias="arrow-outline-right.svg">resources/InstrumentValueIcons/arrow-outline-right.svg</file> |
||||
<file alias="reply-all.svg">resources/InstrumentValueIcons/reply-all.svg</file> |
||||
<file alias="volume-down.svg">resources/InstrumentValueIcons/volume-down.svg</file> |
||||
<file alias="notification.svg">resources/InstrumentValueIcons/notification.svg</file> |
||||
<file alias="playlist.svg">resources/InstrumentValueIcons/playlist.svg</file> |
||||
<file alias="factory.svg">resources/InstrumentValueIcons/factory.svg</file> |
||||
<file alias="news-paper.svg">resources/InstrumentValueIcons/news-paper.svg</file> |
||||
<file alias="tuning.svg">resources/InstrumentValueIcons/tuning.svg</file> |
||||
<file alias="music-album.svg">resources/InstrumentValueIcons/music-album.svg</file> |
||||
<file alias="arrow-thick-down.svg">resources/InstrumentValueIcons/arrow-thick-down.svg</file> |
||||
<file alias="share.svg">resources/InstrumentValueIcons/share.svg</file> |
||||
<file alias="location-current.svg">resources/InstrumentValueIcons/location-current.svg</file> |
||||
<file alias="window.svg">resources/InstrumentValueIcons/window.svg</file> |
||||
<file alias="artist.svg">resources/InstrumentValueIcons/artist.svg</file> |
||||
<file alias="forward-step.svg">resources/InstrumentValueIcons/forward-step.svg</file> |
||||
<file alias="zoom-in.svg">resources/InstrumentValueIcons/zoom-in.svg</file> |
||||
<file alias="subdirectory-left.svg">resources/InstrumentValueIcons/subdirectory-left.svg</file> |
||||
<file alias="duplicate.svg">resources/InstrumentValueIcons/duplicate.svg</file> |
||||
<file alias="block.svg">resources/InstrumentValueIcons/block.svg</file> |
||||
<file alias="heart.svg">resources/InstrumentValueIcons/heart.svg</file> |
||||
<file alias="travel-taxi-cab.svg">resources/InstrumentValueIcons/travel-taxi-cab.svg</file> |
||||
<file alias="navigation-more.svg">resources/InstrumentValueIcons/navigation-more.svg</file> |
||||
<file alias="arrow-outline-left.svg">resources/InstrumentValueIcons/arrow-outline-left.svg</file> |
||||
<file alias="border-top.svg">resources/InstrumentValueIcons/border-top.svg</file> |
||||
<file alias="tools copy.svg">resources/InstrumentValueIcons/tools copy.svg</file> |
||||
<file alias="compose.svg">resources/InstrumentValueIcons/compose.svg</file> |
||||
<file alias="bookmark-outline.svg">resources/InstrumentValueIcons/bookmark-outline.svg</file> |
||||
<file alias="hand-stop.svg">resources/InstrumentValueIcons/hand-stop.svg</file> |
||||
<file alias="tag.svg">resources/InstrumentValueIcons/tag.svg</file> |
||||
<file alias="list-add.svg">resources/InstrumentValueIcons/list-add.svg</file> |
||||
<file alias="cheveron-up.svg">resources/InstrumentValueIcons/cheveron-up.svg</file> |
||||
<file alias="arrow-left.svg">resources/InstrumentValueIcons/arrow-left.svg</file> |
||||
<file alias="view-carousel.svg">resources/InstrumentValueIcons/view-carousel.svg</file> |
||||
<file alias="question.svg">resources/InstrumentValueIcons/question.svg</file> |
||||
<file alias="search.svg">resources/InstrumentValueIcons/search.svg</file> |
||||
<file alias="pylon.svg">resources/InstrumentValueIcons/pylon.svg</file> |
||||
<file alias="arrow-thin-right.svg">resources/InstrumentValueIcons/arrow-thin-right.svg</file> |
||||
<file alias="phone.svg">resources/InstrumentValueIcons/phone.svg</file> |
||||
<file alias="reload.svg">resources/InstrumentValueIcons/reload.svg</file> |
||||
<file alias="document-add.svg">resources/InstrumentValueIcons/document-add.svg</file> |
||||
<file alias="wrench.svg">resources/InstrumentValueIcons/wrench.svg</file> |
||||
<file alias="format-bold.svg">resources/InstrumentValueIcons/format-bold.svg</file> |
||||
<file alias="checkmark.svg">resources/InstrumentValueIcons/checkmark.svg</file> |
||||
<file alias="send.svg">resources/InstrumentValueIcons/send.svg</file> |
||||
<file alias="at-symbol.svg">resources/InstrumentValueIcons/at-symbol.svg</file> |
||||
<file alias="flag.svg">resources/InstrumentValueIcons/flag.svg</file> |
||||
<file alias="format-underline.svg">resources/InstrumentValueIcons/format-underline.svg</file> |
||||
<file alias="calendar.svg">resources/InstrumentValueIcons/calendar.svg</file> |
||||
<file alias="notifications-outline.svg">resources/InstrumentValueIcons/notifications-outline.svg</file> |
||||
<file alias="list.svg">resources/InstrumentValueIcons/list.svg</file> |
||||
<file alias="shuffle.svg">resources/InstrumentValueIcons/shuffle.svg</file> |
||||
<file alias="align-right.svg">resources/InstrumentValueIcons/align-right.svg</file> |
||||
<file alias="beverage.svg">resources/InstrumentValueIcons/beverage.svg</file> |
||||
<file alias="show-sidebar.svg">resources/InstrumentValueIcons/show-sidebar.svg</file> |
||||
<file alias="view-show.svg">resources/InstrumentValueIcons/view-show.svg</file> |
||||
<file alias="copy.svg">resources/InstrumentValueIcons/copy.svg</file> |
||||
<file alias="menu.svg">resources/InstrumentValueIcons/menu.svg</file> |
||||
<file alias="minus-solid.svg">resources/InstrumentValueIcons/minus-solid.svg</file> |
||||
<file alias="travel-case.svg">resources/InstrumentValueIcons/travel-case.svg</file> |
||||
<file alias="stethoscope.svg">resources/InstrumentValueIcons/stethoscope.svg</file> |
||||
<file alias="headphones.svg">resources/InstrumentValueIcons/headphones.svg</file> |
||||
<file alias="format-italic.svg">resources/InstrumentValueIcons/format-italic.svg</file> |
||||
<file alias="browser-window-new.svg">resources/InstrumentValueIcons/browser-window-new.svg</file> |
||||
<file alias="pin.svg">resources/InstrumentValueIcons/pin.svg</file> |
||||
<file alias="border-bottom.svg">resources/InstrumentValueIcons/border-bottom.svg</file> |
||||
<file alias="arrow-right.svg">resources/InstrumentValueIcons/arrow-right.svg</file> |
||||
<file alias="bolt.svg">resources/InstrumentValueIcons/bolt.svg</file> |
||||
<file alias="shield.svg">resources/InstrumentValueIcons/shield.svg</file> |
||||
<file alias="align-center.svg">resources/InstrumentValueIcons/align-center.svg</file> |
||||
<file alias="travel-train.svg">resources/InstrumentValueIcons/travel-train.svg</file> |
||||
<file alias="arrow-up.svg">resources/InstrumentValueIcons/arrow-up.svg</file> |
||||
<file alias="badge.svg">resources/InstrumentValueIcons/badge.svg</file> |
||||
<file alias="usb.svg">resources/InstrumentValueIcons/usb.svg</file> |
||||
<file alias="plugin.svg">resources/InstrumentValueIcons/plugin.svg</file> |
||||
<file alias="checkmark-outline.svg">resources/InstrumentValueIcons/checkmark-outline.svg</file> |
||||
<file alias="store-front.svg">resources/InstrumentValueIcons/store-front.svg</file> |
||||
<file alias="travel.svg">resources/InstrumentValueIcons/travel.svg</file> |
||||
<file alias="align-left.svg">resources/InstrumentValueIcons/align-left.svg</file> |
||||
<file alias="border-inner.svg">resources/InstrumentValueIcons/border-inner.svg</file> |
||||
<file alias="edit-crop.svg">resources/InstrumentValueIcons/edit-crop.svg</file> |
||||
<file alias="adjust.svg">resources/InstrumentValueIcons/adjust.svg</file> |
||||
<file alias="mood-neutral-solid.svg">resources/InstrumentValueIcons/mood-neutral-solid.svg</file> |
||||
<file alias="arrow-thick-up.svg">resources/InstrumentValueIcons/arrow-thick-up.svg</file> |
||||
<file alias="battery-half.svg">resources/InstrumentValueIcons/battery-half.svg</file> |
||||
<file alias="location-restroom.svg">resources/InstrumentValueIcons/location-restroom.svg</file> |
||||
<file alias="travel-car.svg">resources/InstrumentValueIcons/travel-car.svg</file> |
||||
<file alias="border-all.svg">resources/InstrumentValueIcons/border-all.svg</file> |
||||
<file alias="browser-window.svg">resources/InstrumentValueIcons/browser-window.svg</file> |
||||
<file alias="lock-open.svg">resources/InstrumentValueIcons/lock-open.svg</file> |
||||
<file alias="battery-low.svg">resources/InstrumentValueIcons/battery-low.svg</file> |
||||
<file alias="folder-outline-add.svg">resources/InstrumentValueIcons/folder-outline-add.svg</file> |
||||
<file alias="arrow-thin-left.svg">resources/InstrumentValueIcons/arrow-thin-left.svg</file> |
||||
<file alias="close.svg">resources/InstrumentValueIcons/close.svg</file> |
||||
<file alias="calculator.svg">resources/InstrumentValueIcons/calculator.svg</file> |
||||
<file alias="stroke-width.svg">resources/InstrumentValueIcons/stroke-width.svg</file> |
||||
<file alias="thumbs-down.svg">resources/InstrumentValueIcons/thumbs-down.svg</file> |
||||
<file alias="album.svg">resources/InstrumentValueIcons/album.svg</file> |
||||
<file alias="upload.svg">resources/InstrumentValueIcons/upload.svg</file> |
||||
<file alias="buoy.svg">resources/InstrumentValueIcons/buoy.svg</file> |
||||
<file alias="cheveron-down.svg">resources/InstrumentValueIcons/cheveron-down.svg</file> |
||||
<file alias="view-tile.svg">resources/InstrumentValueIcons/view-tile.svg</file> |
||||
</qresource> |
||||
</RCC> |
@ -0,0 +1,301 @@
@@ -0,0 +1,301 @@
|
||||
<RCC> |
||||
<qresource prefix="/InstrumentValueIcons"> |
||||
<file alias="clipboard.svg">clipboard.svg</file> |
||||
<file alias="credit-card.svg">credit-card.svg</file> |
||||
<file alias="bookmark copy 2.svg">bookmark copy 2.svg</file> |
||||
<file alias="library.svg">library.svg</file> |
||||
<file alias="mouse.svg">mouse.svg</file> |
||||
<file alias="printer.svg">printer.svg</file> |
||||
<file alias="thumbs-up.svg">thumbs-up.svg</file> |
||||
<file alias="arrow-thin-up.svg">arrow-thin-up.svg</file> |
||||
<file alias="pause-outline.svg">pause-outline.svg</file> |
||||
<file alias="music-artist.svg">music-artist.svg</file> |
||||
<file alias="location-park.svg">location-park.svg</file> |
||||
<file alias="pen-tool.svg">pen-tool.svg</file> |
||||
<file alias="color-palette.svg">color-palette.svg</file> |
||||
<file alias="announcement.svg">announcement.svg</file> |
||||
<file alias="inbox-check.svg">inbox-check.svg</file> |
||||
<file alias="radio.svg">radio.svg</file> |
||||
<file alias="close-solid.svg">close-solid.svg</file> |
||||
<file alias="inbox.svg">inbox.svg</file> |
||||
<file alias="user-add.svg">user-add.svg</file> |
||||
<file alias="text-box.svg">text-box.svg</file> |
||||
<file alias="queue.svg">queue.svg</file> |
||||
<file alias="minus-outline.svg">minus-outline.svg</file> |
||||
<file alias="user-solid-square.svg">user-solid-square.svg</file> |
||||
<file alias="list-bullet.svg">list-bullet.svg</file> |
||||
<file alias="indent-decrease.svg">indent-decrease.svg</file> |
||||
<file alias="yin-yang.svg">yin-yang.svg</file> |
||||
<file alias="share-alt.svg">share-alt.svg</file> |
||||
<file alias="battery-full.svg">battery-full.svg</file> |
||||
<file alias="folder-outline.svg">folder-outline.svg</file> |
||||
<file alias="bookmark copy 3.svg">bookmark copy 3.svg</file> |
||||
<file alias="browser-window-open.svg">browser-window-open.svg</file> |
||||
<file alias="wallet.svg">wallet.svg</file> |
||||
<file alias="box.svg">box.svg</file> |
||||
<file alias="attachment.svg">attachment.svg</file> |
||||
<file alias="cloud.svg">cloud.svg</file> |
||||
<file alias="radar copy 2.svg">radar copy 2.svg</file> |
||||
<file alias="directions.svg">directions.svg</file> |
||||
<file alias="view-hide.svg">view-hide.svg</file> |
||||
<file alias="hour-glass.svg">hour-glass.svg</file> |
||||
<file alias="globe.svg">globe.svg</file> |
||||
<file alias="volume-off.svg">volume-off.svg</file> |
||||
<file alias="station.svg">station.svg</file> |
||||
<file alias="dots-horizontal-triple.svg">dots-horizontal-triple.svg</file> |
||||
<file alias="save-disk.svg">save-disk.svg</file> |
||||
<file alias="star-full.svg">star-full.svg</file> |
||||
<file alias="mood-sad-solid.svg">mood-sad-solid.svg</file> |
||||
<file alias="chat-bubble-dots.svg">chat-bubble-dots.svg</file> |
||||
<file alias="window-open.svg">window-open.svg</file> |
||||
<file alias="timer.svg">timer.svg</file> |
||||
<file alias="explore.svg">explore.svg</file> |
||||
<file alias="step-backward.svg">step-backward.svg</file> |
||||
<file alias="mood-happy-outline.svg">mood-happy-outline.svg</file> |
||||
<file alias="add-outline.svg">add-outline.svg</file> |
||||
<file alias="zoom-out.svg">zoom-out.svg</file> |
||||
<file alias="fast-forward.svg">fast-forward.svg</file> |
||||
<file alias="network.svg">network.svg</file> |
||||
<file alias="light-bulb.svg">light-bulb.svg</file> |
||||
<file alias="text-decoration.svg">text-decoration.svg</file> |
||||
<file alias="user-group.svg">user-group.svg</file> |
||||
<file alias="repost.svg">repost.svg</file> |
||||
<file alias="key.svg">key.svg</file> |
||||
<file alias="user-solid-circle.svg">user-solid-circle.svg</file> |
||||
<file alias="target.svg">target.svg</file> |
||||
<file alias="date-add.svg">date-add.svg</file> |
||||
<file alias="dial-pad.svg">dial-pad.svg</file> |
||||
<file alias="stand-by.svg">stand-by.svg</file> |
||||
<file alias="flashlight.svg">flashlight.svg</file> |
||||
<file alias="mood-neutral-outline.svg">mood-neutral-outline.svg</file> |
||||
<file alias="view-column.svg">view-column.svg</file> |
||||
<file alias="chart.svg">chart.svg</file> |
||||
<file alias="bluetooth.svg">bluetooth.svg</file> |
||||
<file alias="window-new.svg">window-new.svg</file> |
||||
<file alias="location-hotel.svg">location-hotel.svg</file> |
||||
<file alias="edit-pencil.svg">edit-pencil.svg</file> |
||||
<file alias="location-gas-station.svg">location-gas-station.svg</file> |
||||
<file alias="tablet.svg">tablet.svg</file> |
||||
<file alias="layers.svg">layers.svg</file> |
||||
<file alias="brightness-up.svg">brightness-up.svg</file> |
||||
<file alias="cloud-upload.svg">cloud-upload.svg</file> |
||||
<file alias="cheveron-outline-right.svg">cheveron-outline-right.svg</file> |
||||
<file alias="information-outline.svg">information-outline.svg</file> |
||||
<file alias="chart-pie.svg">chart-pie.svg</file> |
||||
<file alias="screen-full.svg">screen-full.svg</file> |
||||
<file alias="education.svg">education.svg</file> |
||||
<file alias="vector.svg">vector.svg</file> |
||||
<file alias="load-balancer.svg">load-balancer.svg</file> |
||||
<file alias="paste.svg">paste.svg</file> |
||||
<file alias="conversation.svg">conversation.svg</file> |
||||
<file alias="arrow-outline-down.svg">arrow-outline-down.svg</file> |
||||
<file alias="airplane.svg">airplane.svg</file> |
||||
<file alias="cheveron-right.svg">cheveron-right.svg</file> |
||||
<file alias="swap.svg">swap.svg</file> |
||||
<file alias="border-outer.svg">border-outer.svg</file> |
||||
<file alias="watch.svg">watch.svg</file> |
||||
<file alias="notifications.svg">notifications.svg</file> |
||||
<file alias="refresh.svg">refresh.svg</file> |
||||
<file alias="border-left.svg">border-left.svg</file> |
||||
<file alias="border-vertical.svg">border-vertical.svg</file> |
||||
<file alias="arrow-base-up.svg">arrow-base-up.svg</file> |
||||
<file alias="filter.svg">filter.svg</file> |
||||
<file alias="brightness-down.svg">brightness-down.svg</file> |
||||
<file alias="mic.svg">mic.svg</file> |
||||
<file alias="link.svg">link.svg</file> |
||||
<file alias="format-font-size.svg">format-font-size.svg</file> |
||||
<file alias="volume-mute.svg">volume-mute.svg</file> |
||||
<file alias="bug.svg">bug.svg</file> |
||||
<file alias="indent-increase.svg">indent-increase.svg</file> |
||||
<file alias="add-solid.svg">add-solid.svg</file> |
||||
<file alias="code.svg">code.svg</file> |
||||
<file alias="pause-solid.svg">pause-solid.svg</file> |
||||
<file alias="folder.svg">folder.svg</file> |
||||
<file alias="shopping-cart.svg">shopping-cart.svg</file> |
||||
<file alias="inbox-download.svg">inbox-download.svg</file> |
||||
<file alias="bookmark-outline-add.svg">bookmark-outline-add.svg</file> |
||||
<file alias="play-outline.svg">play-outline.svg</file> |
||||
<file alias="music-notes.svg">music-notes.svg</file> |
||||
<file alias="user.svg">user.svg</file> |
||||
<file alias="computer-desktop.svg">computer-desktop.svg</file> |
||||
<file alias="step-forward.svg">step-forward.svg</file> |
||||
<file alias="inbox-full.svg">inbox-full.svg</file> |
||||
<file alias="border-none.svg">border-none.svg</file> |
||||
<file alias="map.svg">map.svg</file> |
||||
<file alias="information-solid.svg">information-solid.svg</file> |
||||
<file alias="format-text-size.svg">format-text-size.svg</file> |
||||
<file alias="location.svg">location.svg</file> |
||||
<file alias="close-outline.svg">close-outline.svg</file> |
||||
<file alias="dots-horizontal-double.svg">dots-horizontal-double.svg</file> |
||||
<file alias="servers.svg">servers.svg</file> |
||||
<file alias="trophy.svg">trophy.svg</file> |
||||
<file alias="arrow-thick-right.svg">arrow-thick-right.svg</file> |
||||
<file alias="radar.svg">radar.svg</file> |
||||
<file alias="fast-rewind.svg">fast-rewind.svg</file> |
||||
<file alias="hard-drive.svg">hard-drive.svg</file> |
||||
<file alias="cheveron-outline-down.svg">cheveron-outline-down.svg</file> |
||||
<file alias="trash.svg">trash.svg</file> |
||||
<file alias="forward.svg">forward.svg</file> |
||||
<file alias="backspace.svg">backspace.svg</file> |
||||
<file alias="location-shopping.svg">location-shopping.svg</file> |
||||
<file alias="mobile-devices.svg">mobile-devices.svg</file> |
||||
<file alias="cheveron-left.svg">cheveron-left.svg</file> |
||||
<file alias="travel-walk.svg">travel-walk.svg</file> |
||||
<file alias="computer-laptop.svg">computer-laptop.svg</file> |
||||
<file alias="dashboard.svg">dashboard.svg</file> |
||||
<file alias="video-camera.svg">video-camera.svg</file> |
||||
<file alias="thermometer.svg">thermometer.svg</file> |
||||
<file alias="cog.svg">cog.svg</file> |
||||
<file alias="location-marina.svg">location-marina.svg</file> |
||||
<file alias="location-food.svg">location-food.svg</file> |
||||
<file alias="reply.svg">reply.svg</file> |
||||
<file alias="arrow-thick-left.svg">arrow-thick-left.svg</file> |
||||
<file alias="subdirectory-right.svg">subdirectory-right.svg</file> |
||||
<file alias="backward.svg">backward.svg</file> |
||||
<file alias="coffee.svg">coffee.svg</file> |
||||
<file alias="keyboard.svg">keyboard.svg</file> |
||||
<file alias="film.svg">film.svg</file> |
||||
<file alias="book-reference.svg">book-reference.svg</file> |
||||
<file alias="php-elephant.svg">php-elephant.svg</file> |
||||
<file alias="chart-bar.svg">chart-bar.svg</file> |
||||
<file alias="backward-step.svg">backward-step.svg</file> |
||||
<file alias="cheveron-outline-up.svg">cheveron-outline-up.svg</file> |
||||
<file alias="cheveron-outline-left.svg">cheveron-outline-left.svg</file> |
||||
<file alias="play.svg">play.svg</file> |
||||
<file alias="border-right.svg">border-right.svg</file> |
||||
<file alias="portfolio.svg">portfolio.svg</file> |
||||
<file alias="bookmark.svg">bookmark.svg</file> |
||||
<file alias="hot.svg">hot.svg</file> |
||||
<file alias="align-justified.svg">align-justified.svg</file> |
||||
<file alias="border-horizontal.svg">border-horizontal.svg</file> |
||||
<file alias="arrow-outline-up.svg">arrow-outline-up.svg</file> |
||||
<file alias="apparel.svg">apparel.svg</file> |
||||
<file alias="arrow-thin-down.svg">arrow-thin-down.svg</file> |
||||
<file alias="mood-happy-solid.svg">mood-happy-solid.svg</file> |
||||
<file alias="home.svg">home.svg</file> |
||||
<file alias="mood-sad-outline.svg">mood-sad-outline.svg</file> |
||||
<file alias="exclamation-solid.svg">exclamation-solid.svg</file> |
||||
<file alias="translate.svg">translate.svg</file> |
||||
<file alias="document.svg">document.svg</file> |
||||
<file alias="share-01.svg">share-01.svg</file> |
||||
<file alias="gift.svg">gift.svg</file> |
||||
<file alias="volume-up.svg">volume-up.svg</file> |
||||
<file alias="travel-bus.svg">travel-bus.svg</file> |
||||
<file alias="envelope.svg">envelope.svg</file> |
||||
<file alias="camera.svg">camera.svg</file> |
||||
<file alias="view-list.svg">view-list.svg</file> |
||||
<file alias="time.svg">time.svg</file> |
||||
<file alias="lock-closed.svg">lock-closed.svg</file> |
||||
<file alias="ticket.svg">ticket.svg</file> |
||||
<file alias="edit-cut.svg">edit-cut.svg</file> |
||||
<file alias="music-playlist.svg">music-playlist.svg</file> |
||||
<file alias="currency-dollar.svg">currency-dollar.svg</file> |
||||
<file alias="exclamation-outline.svg">exclamation-outline.svg</file> |
||||
<file alias="anchor.svg">anchor.svg</file> |
||||
<file alias="edit-copy.svg">edit-copy.svg</file> |
||||
<file alias="pause.svg">pause.svg</file> |
||||
<file alias="photo.svg">photo.svg</file> |
||||
<file alias="arrow-outline-right.svg">arrow-outline-right.svg</file> |
||||
<file alias="arrow-simple-right.svg">arrow-simple-right.svg</file> |
||||
<file alias="reply-all.svg">reply-all.svg</file> |
||||
<file alias="volume-down.svg">volume-down.svg</file> |
||||
<file alias="notification.svg">notification.svg</file> |
||||
<file alias="playlist.svg">playlist.svg</file> |
||||
<file alias="factory.svg">factory.svg</file> |
||||
<file alias="arrow-simple-up.svg">arrow-simple-up.svg</file> |
||||
<file alias="news-paper.svg">news-paper.svg</file> |
||||
<file alias="tuning.svg">tuning.svg</file> |
||||
<file alias="music-album.svg">music-album.svg</file> |
||||
<file alias="arrow-thick-down.svg">arrow-thick-down.svg</file> |
||||
<file alias="share.svg">share.svg</file> |
||||
<file alias="location-current.svg">location-current.svg</file> |
||||
<file alias="window.svg">window.svg</file> |
||||
<file alias="artist.svg">artist.svg</file> |
||||
<file alias="forward-step.svg">forward-step.svg</file> |
||||
<file alias="zoom-in.svg">zoom-in.svg</file> |
||||
<file alias="subdirectory-left.svg">subdirectory-left.svg</file> |
||||
<file alias="duplicate.svg">duplicate.svg</file> |
||||
<file alias="block.svg">block.svg</file> |
||||
<file alias="heart.svg">heart.svg</file> |
||||
<file alias="travel-taxi-cab.svg">travel-taxi-cab.svg</file> |
||||
<file alias="navigation-more.svg">navigation-more.svg</file> |
||||
<file alias="arrow-outline-left.svg">arrow-outline-left.svg</file> |
||||
<file alias="border-top.svg">border-top.svg</file> |
||||
<file alias="tools copy.svg">tools copy.svg</file> |
||||
<file alias="compose.svg">compose.svg</file> |
||||
<file alias="bookmark-outline.svg">bookmark-outline.svg</file> |
||||
<file alias="hand-stop.svg">hand-stop.svg</file> |
||||
<file alias="tag.svg">tag.svg</file> |
||||
<file alias="list-add.svg">list-add.svg</file> |
||||
<file alias="cheveron-up.svg">cheveron-up.svg</file> |
||||
<file alias="view-carousel.svg">view-carousel.svg</file> |
||||
<file alias="question.svg">question.svg</file> |
||||
<file alias="arrow-simple-left.svg">arrow-simple-left.svg</file> |
||||
<file alias="search.svg">search.svg</file> |
||||
<file alias="pylon.svg">pylon.svg</file> |
||||
<file alias="arrow-thin-right.svg">arrow-thin-right.svg</file> |
||||
<file alias="phone.svg">phone.svg</file> |
||||
<file alias="reload.svg">reload.svg</file> |
||||
<file alias="arrow-simple-down.svg">arrow-simple-down.svg</file> |
||||
<file alias="arrow-base-down.svg">arrow-base-down.svg</file> |
||||
<file alias="document-add.svg">document-add.svg</file> |
||||
<file alias="wrench.svg">wrench.svg</file> |
||||
<file alias="format-bold.svg">format-bold.svg</file> |
||||
<file alias="checkmark.svg">checkmark.svg</file> |
||||
<file alias="send.svg">send.svg</file> |
||||
<file alias="at-symbol.svg">at-symbol.svg</file> |
||||
<file alias="flag.svg">flag.svg</file> |
||||
<file alias="format-underline.svg">format-underline.svg</file> |
||||
<file alias="calendar.svg">calendar.svg</file> |
||||
<file alias="notifications-outline.svg">notifications-outline.svg</file> |
||||
<file alias="list.svg">list.svg</file> |
||||
<file alias="shuffle.svg">shuffle.svg</file> |
||||
<file alias="align-right.svg">align-right.svg</file> |
||||
<file alias="beverage.svg">beverage.svg</file> |
||||
<file alias="show-sidebar.svg">show-sidebar.svg</file> |
||||
<file alias="view-show.svg">view-show.svg</file> |
||||
<file alias="copy.svg">copy.svg</file> |
||||
<file alias="menu.svg">menu.svg</file> |
||||
<file alias="minus-solid.svg">minus-solid.svg</file> |
||||
<file alias="travel-case.svg">travel-case.svg</file> |
||||
<file alias="stethoscope.svg">stethoscope.svg</file> |
||||
<file alias="headphones.svg">headphones.svg</file> |
||||
<file alias="format-italic.svg">format-italic.svg</file> |
||||
<file alias="browser-window-new.svg">browser-window-new.svg</file> |
||||
<file alias="pin.svg">pin.svg</file> |
||||
<file alias="border-bottom.svg">border-bottom.svg</file> |
||||
<file alias="bolt.svg">bolt.svg</file> |
||||
<file alias="shield.svg">shield.svg</file> |
||||
<file alias="align-center.svg">align-center.svg</file> |
||||
<file alias="travel-train.svg">travel-train.svg</file> |
||||
<file alias="badge.svg">badge.svg</file> |
||||
<file alias="usb.svg">usb.svg</file> |
||||
<file alias="plugin.svg">plugin.svg</file> |
||||
<file alias="checkmark-outline.svg">checkmark-outline.svg</file> |
||||
<file alias="store-front.svg">store-front.svg</file> |
||||
<file alias="travel.svg">travel.svg</file> |
||||
<file alias="align-left.svg">align-left.svg</file> |
||||
<file alias="border-inner.svg">border-inner.svg</file> |
||||
<file alias="edit-crop.svg">edit-crop.svg</file> |
||||
<file alias="adjust.svg">adjust.svg</file> |
||||
<file alias="mood-neutral-solid.svg">mood-neutral-solid.svg</file> |
||||
<file alias="arrow-thick-up.svg">arrow-thick-up.svg</file> |
||||
<file alias="battery-half.svg">battery-half.svg</file> |
||||
<file alias="location-restroom.svg">location-restroom.svg</file> |
||||
<file alias="travel-car.svg">travel-car.svg</file> |
||||
<file alias="border-all.svg">border-all.svg</file> |
||||
<file alias="browser-window.svg">browser-window.svg</file> |
||||
<file alias="lock-open.svg">lock-open.svg</file> |
||||
<file alias="battery-low.svg">battery-low.svg</file> |
||||
<file alias="folder-outline-add.svg">folder-outline-add.svg</file> |
||||
<file alias="arrow-thin-left.svg">arrow-thin-left.svg</file> |
||||
<file alias="close.svg">close.svg</file> |
||||
<file alias="calculator.svg">calculator.svg</file> |
||||
<file alias="stroke-width.svg">stroke-width.svg</file> |
||||
<file alias="thumbs-down.svg">thumbs-down.svg</file> |
||||
<file alias="album.svg">album.svg</file> |
||||
<file alias="buoy.svg">buoy.svg</file> |
||||
<file alias="cheveron-down.svg">cheveron-down.svg</file> |
||||
<file alias="view-tile.svg">view-tile.svg</file> |
||||
</qresource> |
||||
</RCC> |
Before Width: | Height: | Size: 119 B After Width: | Height: | Size: 119 B |
Before Width: | Height: | Size: 121 B After Width: | Height: | Size: 121 B |
Before Width: | Height: | Size: 187 B After Width: | Height: | Size: 187 B |
Before Width: | Height: | Size: 188 B After Width: | Height: | Size: 188 B |
Before Width: | Height: | Size: 187 B After Width: | Height: | Size: 187 B |
Before Width: | Height: | Size: 188 B After Width: | Height: | Size: 188 B |
@ -0,0 +1,343 @@
@@ -0,0 +1,343 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#include "FactValueGrid.h" |
||||
#include "InstrumentValueData.h" |
||||
#include "QGCApplication.h" |
||||
#include "QGCCorePlugin.h" |
||||
|
||||
#include <QSettings> |
||||
|
||||
const char* FactValueGrid::_rowsKey = "rows"; |
||||
const char* FactValueGrid::_columnsKey = "columns"; |
||||
const char* FactValueGrid::_fontSizeKey = "fontSize"; |
||||
const char* FactValueGrid::_orientationKey = "orientation"; |
||||
const char* FactValueGrid::_versionKey = "version"; |
||||
const char* FactValueGrid::_factGroupNameKey = "groupName"; |
||||
const char* FactValueGrid::_factNameKey = "factName"; |
||||
const char* FactValueGrid::_textKey = "text"; |
||||
const char* FactValueGrid::_showUnitsKey = "showUnits"; |
||||
const char* FactValueGrid::_iconKey = "icon"; |
||||
const char* FactValueGrid::_rangeTypeKey = "rangeType"; |
||||
const char* FactValueGrid::_rangeValuesKey = "rangeValues"; |
||||
const char* FactValueGrid::_rangeColorsKey = "rangeColors"; |
||||
const char* FactValueGrid::_rangeIconsKey = "rangeIcons"; |
||||
const char* FactValueGrid::_rangeOpacitiesKey = "rangeOpacities"; |
||||
|
||||
const char* FactValueGrid::_deprecatedGroupKey = "ValuesWidget"; |
||||
|
||||
QStringList FactValueGrid::_iconNames; |
||||
|
||||
// Important: The indices of these strings must match the FactValueGrid::FontSize enum
|
||||
const QStringList FactValueGrid::_fontSizeNames = { |
||||
QT_TRANSLATE_NOOP("FactValueGrid", "Default"), |
||||
QT_TRANSLATE_NOOP("FactValueGrid", "Small"), |
||||
QT_TRANSLATE_NOOP("FactValueGrid", "Medium"), |
||||
QT_TRANSLATE_NOOP("FactValueGrid", "Large"), |
||||
}; |
||||
|
||||
FactValueGrid::FactValueGrid(QQuickItem* parent) |
||||
: QQuickItem(parent) |
||||
, _rows (new QmlObjectListModel(this)) |
||||
{ |
||||
if (_iconNames.isEmpty()) { |
||||
QDir iconDir(":/InstrumentValueIcons/"); |
||||
_iconNames = iconDir.entryList(); |
||||
} |
||||
|
||||
_connectSignals(); |
||||
} |
||||
|
||||
FactValueGrid::FactValueGrid(const QString& defaultSettingsGroup) |
||||
: QQuickItem (nullptr) |
||||
, _defaultSettingsGroup (defaultSettingsGroup) |
||||
, _rows (new QmlObjectListModel(this)) |
||||
{ |
||||
_connectSignals(); |
||||
} |
||||
|
||||
void FactValueGrid::_connectSignals(void) |
||||
{ |
||||
connect(this, &FactValueGrid::fontSizeChanged, this, &FactValueGrid::_saveSettings); |
||||
} |
||||
|
||||
void FactValueGrid::componentComplete(void) |
||||
{ |
||||
QQuickItem::componentComplete(); |
||||
|
||||
// We should know settingsGroup/defaultSettingsGroup now so we can load settings
|
||||
_loadSettings(); |
||||
} |
||||
|
||||
void FactValueGrid::resetToDefaults(void) |
||||
{ |
||||
QSettings settings; |
||||
settings.remove(_userSettingsGroup); |
||||
_loadSettings(); |
||||
} |
||||
|
||||
QString FactValueGrid::_pascalCase(const QString& text) |
||||
{ |
||||
return text[0].toUpper() + text.right(text.length() - 1); |
||||
} |
||||
|
||||
void FactValueGrid::setFontSize(FontSize fontSize) |
||||
{ |
||||
if (fontSize != _fontSize) { |
||||
_fontSize = fontSize; |
||||
emit fontSizeChanged(fontSize); |
||||
} |
||||
} |
||||
|
||||
void FactValueGrid::_saveValueData(QSettings& settings, InstrumentValueData* value) |
||||
{ |
||||
settings.setValue(_textKey, value->text()); |
||||
settings.setValue(_showUnitsKey, value->showUnits()); |
||||
settings.setValue(_iconKey, value->icon()); |
||||
settings.setValue(_rangeTypeKey, value->rangeType()); |
||||
|
||||
if (value->rangeType() != InstrumentValueData::NoRangeInfo) { |
||||
settings.setValue(_rangeValuesKey, value->rangeValues()); |
||||
} |
||||
|
||||
switch (value->rangeType()) { |
||||
case InstrumentValueData::NoRangeInfo: |
||||
break; |
||||
case InstrumentValueData::ColorRange: |
||||
settings.setValue(_rangeColorsKey, value->rangeColors()); |
||||
break; |
||||
case InstrumentValueData::OpacityRange: |
||||
settings.setValue(_rangeOpacitiesKey, value->rangeOpacities()); |
||||
break; |
||||
case InstrumentValueData::IconSelectRange: |
||||
settings.setValue(_rangeIconsKey, value->rangeIcons()); |
||||
break; |
||||
} |
||||
|
||||
if (value->fact()) { |
||||
settings.setValue(_factGroupNameKey, value->factGroupName()); |
||||
settings.setValue(_factNameKey, value->factName()); |
||||
} else { |
||||
settings.setValue(_factGroupNameKey, ""); |
||||
settings.setValue(_factNameKey, ""); |
||||
} |
||||
} |
||||
|
||||
void FactValueGrid::_loadValueData(QSettings& settings, InstrumentValueData* value) |
||||
{ |
||||
QString factName = settings.value(_factNameKey).toString(); |
||||
if (!factName.isEmpty()) { |
||||
value->setFact(settings.value(_factGroupNameKey).toString(), factName); |
||||
} |
||||
|
||||
value->setText (settings.value(_textKey).toString()); |
||||
value->setShowUnits (settings.value(_showUnitsKey, true).toBool()); |
||||
value->setIcon (settings.value(_iconKey).toString()); |
||||
value->setRangeType (settings.value(_rangeTypeKey, InstrumentValueData::NoRangeInfo).value<InstrumentValueData::RangeType>()); |
||||
|
||||
if (value->rangeType() != InstrumentValueData::NoRangeInfo) { |
||||
value->setRangeValues(settings.value(_rangeValuesKey).value<QVariantList>()); |
||||
} |
||||
switch (value->rangeType()) { |
||||
case InstrumentValueData::NoRangeInfo: |
||||
break; |
||||
case InstrumentValueData::ColorRange: |
||||
value->setRangeColors(settings.value(_rangeColorsKey).value<QVariantList>()); |
||||
break; |
||||
case InstrumentValueData::OpacityRange: |
||||
value->setRangeOpacities(settings.value(_rangeOpacitiesKey).value<QVariantList>()); |
||||
break; |
||||
case InstrumentValueData::IconSelectRange: |
||||
value->setRangeIcons(settings.value(_rangeIconsKey).value<QVariantList>()); |
||||
break; |
||||
} |
||||
} |
||||
|
||||
void FactValueGrid::_connectSaveSignals(InstrumentValueData* value) |
||||
{ |
||||
connect(value, &InstrumentValueData::factNameChanged, this, &FactValueGrid::_saveSettings); |
||||
connect(value, &InstrumentValueData::factGroupNameChanged, this, &FactValueGrid::_saveSettings); |
||||
connect(value, &InstrumentValueData::textChanged, this, &FactValueGrid::_saveSettings); |
||||
connect(value, &InstrumentValueData::showUnitsChanged, this, &FactValueGrid::_saveSettings); |
||||
connect(value, &InstrumentValueData::iconChanged, this, &FactValueGrid::_saveSettings); |
||||
connect(value, &InstrumentValueData::rangeTypeChanged, this, &FactValueGrid::_saveSettings); |
||||
connect(value, &InstrumentValueData::rangeValuesChanged, this, &FactValueGrid::_saveSettings); |
||||
connect(value, &InstrumentValueData::rangeColorsChanged, this, &FactValueGrid::_saveSettings); |
||||
connect(value, &InstrumentValueData::rangeOpacitiesChanged, this, &FactValueGrid::_saveSettings); |
||||
connect(value, &InstrumentValueData::rangeIconsChanged, this, &FactValueGrid::_saveSettings); |
||||
} |
||||
|
||||
void FactValueGrid::appendColumn(void) |
||||
{ |
||||
for (int rowIndex=0; rowIndex<_rows->count(); rowIndex++) { |
||||
QmlObjectListModel* list = _rows->value<QmlObjectListModel*>(rowIndex); |
||||
list->append(_createNewInstrumentValueWorker(list)); |
||||
|
||||
} |
||||
_columnCount++; |
||||
emit columnCountChanged(_columnCount); |
||||
_saveSettings(); |
||||
} |
||||
|
||||
void FactValueGrid::deleteLastColumn(void) |
||||
{ |
||||
if (_columnCount <= 1) { |
||||
return; |
||||
} |
||||
for (int rowIndex=0; rowIndex<_rows->count(); rowIndex++) { |
||||
QmlObjectListModel* list = _rows->value<QmlObjectListModel*>(rowIndex); |
||||
list->removeAt(list->count() - 1)->deleteLater(); |
||||
} |
||||
_columnCount--; |
||||
emit columnCountChanged(_columnCount); |
||||
_saveSettings(); |
||||
} |
||||
|
||||
QmlObjectListModel* FactValueGrid::appendRow(void) |
||||
{ |
||||
QmlObjectListModel* newList = new QmlObjectListModel(_rows); |
||||
_rows->append(newList); |
||||
|
||||
// If this is the first row then we automatically add the first column as well
|
||||
int cColsToAdd = qMax(_columnCount, 1); |
||||
for (int i=0; i<cColsToAdd; i++) { |
||||
newList->append(_createNewInstrumentValueWorker(newList)); |
||||
} |
||||
|
||||
if (cColsToAdd != _columnCount) { |
||||
_columnCount = cColsToAdd; |
||||
emit columnCountChanged(_columnCount); |
||||
} |
||||
|
||||
_saveSettings(); |
||||
|
||||
return newList; |
||||
} |
||||
|
||||
void FactValueGrid::deleteLastRow(void) |
||||
{ |
||||
if (_rows->count() > 1) { |
||||
_rows->removeAt(_rows->count() - 1)->deleteLater(); |
||||
} |
||||
} |
||||
|
||||
InstrumentValueData* FactValueGrid::_createNewInstrumentValueWorker(QObject* parent) |
||||
{ |
||||
InstrumentValueData* value = new InstrumentValueData(this, parent); |
||||
value->setFact(InstrumentValueData::vehicleFactGroupName, "AltitudeRelative"); |
||||
value->setText(value->fact()->shortDescription()); |
||||
_connectSaveSignals(value); |
||||
return value; |
||||
|
||||
} |
||||
|
||||
void FactValueGrid::_saveSettings(void) |
||||
{ |
||||
if (_preventSaveSettings) { |
||||
return; |
||||
} |
||||
|
||||
QSettings settings; |
||||
if (_userSettingsGroup.isEmpty()) { |
||||
// This means we are setting up default settings
|
||||
settings.beginGroup(_defaultSettingsGroup); |
||||
} else { |
||||
// This means we are saving user modifications
|
||||
settings.remove(_defaultSettingsGroup); |
||||
settings.beginGroup(_userSettingsGroup); |
||||
} |
||||
|
||||
settings.remove(""); // Remove any previous settings
|
||||
|
||||
settings.setValue(_versionKey, 1); |
||||
settings.setValue(_fontSizeKey, _fontSize); |
||||
settings.setValue(_orientationKey, _orientation); |
||||
settings.setValue(_columnsKey, _columnCount); |
||||
|
||||
settings.beginWriteArray(_rowsKey); |
||||
for (int rowIndex=0; rowIndex<_rows->count(); rowIndex++) { |
||||
QmlObjectListModel* columns = _rows->value<QmlObjectListModel*>(rowIndex); |
||||
|
||||
settings.setArrayIndex(rowIndex); |
||||
settings.beginWriteArray(_columnsKey); |
||||
|
||||
for (int colIndex=0; colIndex<columns->count(); colIndex++) { |
||||
InstrumentValueData* value = columns->value<InstrumentValueData*>(colIndex); |
||||
settings.setArrayIndex(colIndex); |
||||
_saveValueData(settings, value); |
||||
} |
||||
|
||||
settings.endArray(); |
||||
} |
||||
settings.endArray(); |
||||
} |
||||
|
||||
void FactValueGrid::_loadSettings(void) |
||||
{ |
||||
_rows->deleteLater(); |
||||
_rows = new QmlObjectListModel(this); |
||||
emit rowsChanged(_rows); |
||||
|
||||
QSettings settings; |
||||
if (!settings.childGroups().contains(_userSettingsGroup)) { |
||||
qgcApp()->toolbox()->corePlugin()->factValueGridCreateDefaultSettings(_defaultSettingsGroup); |
||||
} |
||||
|
||||
_preventSaveSettings = true; |
||||
|
||||
if (settings.childGroups().contains(_defaultSettingsGroup)) { |
||||
settings.beginGroup(_defaultSettingsGroup); |
||||
} else { |
||||
settings.beginGroup(_userSettingsGroup); |
||||
} |
||||
|
||||
int version = settings.value(_versionKey, 0).toInt(); |
||||
if (version != 1) { |
||||
qgcApp()->showAppMessage(tr("Settings version %1 for %2 is not supported. Setup will be reset to defaults.").arg(version).arg(_userSettingsGroup), tr("Load Settings")); |
||||
settings.remove(""); |
||||
qgcApp()->toolbox()->corePlugin()->factValueGridCreateDefaultSettings(_defaultSettingsGroup); |
||||
} |
||||
_fontSize = settings.value(_fontSizeKey, DefaultFontSize).value<FontSize>(); |
||||
_orientation = settings.value(_orientationKey, VerticalOrientation).value<Orientation>(); |
||||
|
||||
// Initial setup of empty items
|
||||
int cColumns = settings.value(_columnsKey).toInt(); |
||||
int cModelLists = settings.beginReadArray(_rowsKey); |
||||
if (cModelLists && cColumns) { |
||||
appendRow(); |
||||
for (int itemIndex=1; itemIndex<cColumns; itemIndex++) { |
||||
appendColumn(); |
||||
} |
||||
for (int rowIndex=1; rowIndex<cModelLists; rowIndex++) { |
||||
appendRow(); |
||||
} |
||||
} |
||||
|
||||
// Fill in the items from settings
|
||||
for (int rowIndex=0; rowIndex<cModelLists; rowIndex++) { |
||||
settings.setArrayIndex(rowIndex); |
||||
int cItems = settings.beginReadArray(_columnsKey); |
||||
for (int itemIndex=0; itemIndex<cItems; itemIndex++) { |
||||
QmlObjectListModel* list = _rows->value<QmlObjectListModel*>(rowIndex); |
||||
InstrumentValueData* value = list->value<InstrumentValueData*>(itemIndex); |
||||
settings.setArrayIndex(itemIndex); |
||||
_loadValueData(settings, value); |
||||
} |
||||
settings.endArray(); |
||||
} |
||||
settings.endArray(); |
||||
|
||||
_preventSaveSettings = false; |
||||
|
||||
// Use defaults if nothing there
|
||||
if (_rows->count() == 0) { |
||||
_rows->deleteLater(); |
||||
emit rowsChanged(_rows); |
||||
} |
||||
} |
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#include "HorizontalFactValueGrid.h" |
||||
#include "InstrumentValueData.h" |
||||
#include "QGCApplication.h" |
||||
#include "QGCCorePlugin.h" |
||||
|
||||
#include <QSettings> |
||||
|
||||
const QString HorizontalFactValueGrid::_toolbarUserSettingsGroup ("ToolbarUserSettings2"); |
||||
const QString HorizontalFactValueGrid::toolbarDefaultSettingsGroup ("ToolbarDefaultSettings2"); |
||||
|
||||
HorizontalFactValueGrid::HorizontalFactValueGrid(QQuickItem* parent) |
||||
: FactValueGrid(parent) |
||||
{ |
||||
_orientation = HorizontalOrientation; |
||||
} |
||||
|
||||
HorizontalFactValueGrid::HorizontalFactValueGrid(const QString& defaultSettingsGroup) |
||||
: FactValueGrid(defaultSettingsGroup) |
||||
{ |
||||
_orientation = HorizontalOrientation; |
||||
} |
@ -0,0 +1,38 @@
@@ -0,0 +1,38 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#pragma once |
||||
|
||||
#include "FactSystem.h" |
||||
#include "QmlObjectListModel.h" |
||||
#include "QGCApplication.h" |
||||
#include "FactValueGrid.h" |
||||
|
||||
class InstrumentValueData; |
||||
|
||||
class HorizontalFactValueGrid : public FactValueGrid |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
public: |
||||
HorizontalFactValueGrid(QQuickItem *parent = nullptr); |
||||
HorizontalFactValueGrid(const QString& defaultSettingsGroup); |
||||
|
||||
Q_PROPERTY(QString toolbarDefaultSettingsGroup MEMBER toolbarDefaultSettingsGroup CONSTANT) |
||||
Q_PROPERTY(QString toolbarUserSettingsGroup MEMBER _toolbarUserSettingsGroup CONSTANT) |
||||
|
||||
static const QString toolbarDefaultSettingsGroup; |
||||
|
||||
private: |
||||
Q_DISABLE_COPY(HorizontalFactValueGrid) |
||||
|
||||
static const QString _toolbarUserSettingsGroup; |
||||
}; |
||||
|
||||
QML_DECLARE_TYPE(HorizontalFactValueGrid) |
@ -0,0 +1,197 @@
@@ -0,0 +1,197 @@
|
||||
/**************************************************************************** |
||||
* |
||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
import QtQuick 2.12 |
||||
import QtQuick.Layouts 1.2 |
||||
import QtQuick.Controls 2.5 |
||||
import QtQml 2.12 |
||||
|
||||
import QGroundControl.Templates 1.0 as T |
||||
import QGroundControl.Controls 1.0 |
||||
import QGroundControl.ScreenTools 1.0 |
||||
import QGroundControl.Controllers 1.0 |
||||
import QGroundControl.Palette 1.0 |
||||
import QGroundControl.FlightMap 1.0 |
||||
import QGroundControl 1.0 |
||||
|
||||
// Note: This control will spit out qWarnings like this: "QGridLayoutEngine::addItem: Cell (0, 1) already taken" |
||||
// This is due to Qt bug https://bugreports.qt.io/browse/QTBUG-65121 |
||||
// If this becomes a problem I'll implement our own grid layout control |
||||
|
||||
T.HorizontalFactValueGrid { |
||||
id: _root |
||||
width: topLevelRowLayout.width |
||||
|
||||
property bool settingsUnlocked: false |
||||
|
||||
property real _margins: ScreenTools.defaultFontPixelWidth / 2 |
||||
property int _rowMax: 2 |
||||
property real _rowButtonWidth: ScreenTools.minTouchPixels |
||||
property real _rowButtonHeight: ScreenTools.minTouchPixels / 2 |
||||
property real _editButtonSpacing: 2 |
||||
|
||||
QGCPalette { id: qgcPal; colorGroupEnabled: enabled } |
||||
|
||||
RowLayout { |
||||
id: topLevelRowLayout |
||||
height: parent.height |
||||
|
||||
Item { |
||||
id: lockItem |
||||
Layout.fillHeight: true |
||||
width: ScreenTools.minTouchPixels |
||||
visible: settingsUnlocked |
||||
enabled: settingsUnlocked |
||||
|
||||
QGCColoredImage { |
||||
anchors.centerIn: parent |
||||
source: "/res/LockOpen.svg" |
||||
mipmap: true |
||||
width: parent.width * 0.75 |
||||
height: width |
||||
sourceSize.width: width |
||||
color: qgcPal.text |
||||
fillMode: Image.PreserveAspectFit |
||||
} |
||||
|
||||
QGCMouseArea { |
||||
fillItem: parent |
||||
onClicked: settingsUnlocked = false |
||||
} |
||||
} |
||||
|
||||
ColumnLayout { |
||||
Layout.fillHeight: true |
||||
|
||||
GridLayout { |
||||
id: valueGrid |
||||
Layout.preferredHeight: _root.height |
||||
rows: _root.rows.count |
||||
rowSpacing: 0 |
||||
|
||||
Repeater { |
||||
model: _root.rows |
||||
|
||||
Repeater { |
||||
id: labelRepeater |
||||
model: object |
||||
|
||||
property real _index: index |
||||
|
||||
InstrumentValueLabel { |
||||
Layout.row: labelRepeater._index |
||||
Layout.column: index * 2 |
||||
Layout.fillHeight: true |
||||
Layout.alignment: Qt.AlignRight |
||||
instrumentValueData: object |
||||
} |
||||
} |
||||
} |
||||
|
||||
Repeater { |
||||
model: _root.rows |
||||
|
||||
Repeater { |
||||
id: valueRepeater |
||||
model: object |
||||
|
||||
property real _index: index |
||||
|
||||
InstrumentValueValue { |
||||
Layout.row: valueRepeater._index |
||||
Layout.column: index * 2 + 1 |
||||
Layout.fillHeight: true |
||||
Layout.alignment: Qt.AlignLeft |
||||
instrumentValueData: object |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
RowLayout { |
||||
id: rowButtons |
||||
height: ScreenTools.minTouchPixels / 2 |
||||
Layout.fillWidth: true |
||||
spacing: 1 |
||||
visible: settingsUnlocked |
||||
enabled: settingsUnlocked |
||||
|
||||
QGCButton { |
||||
Layout.fillWidth: true |
||||
Layout.preferredHeight: parent.height |
||||
text: qsTr("+") |
||||
onClicked: appendRow() |
||||
} |
||||
|
||||
QGCButton { |
||||
Layout.fillWidth: true |
||||
Layout.preferredHeight: parent.height |
||||
text: qsTr("-") |
||||
enabled: _root.rows.count > 1 |
||||
onClicked: deleteLastRow() |
||||
} |
||||
} |
||||
} |
||||
|
||||
ColumnLayout { |
||||
Layout.fillHeight: true |
||||
Layout.bottomMargin: rowButtons.height |
||||
Layout.preferredWidth: ScreenTools.minTouchPixels / 2 |
||||
spacing: 1 |
||||
visible: settingsUnlocked |
||||
enabled: settingsUnlocked |
||||
|
||||
QGCButton { |
||||
Layout.fillHeight: true |
||||
Layout.preferredHeight: ScreenTools.minTouchPixels |
||||
Layout.preferredWidth: parent.width |
||||
text: qsTr("+") |
||||
onClicked: appendColumn() |
||||
} |
||||
|
||||
QGCButton { |
||||
Layout.fillHeight: true |
||||
Layout.preferredHeight: ScreenTools.minTouchPixels |
||||
Layout.preferredWidth: parent.width |
||||
text: qsTr("-") |
||||
enabled: _root.columnCount > 1 |
||||
onClicked: deleteLastColumn() |
||||
} |
||||
} |
||||
} |
||||
|
||||
QGCMouseArea { |
||||
x: valueGrid.x + lockItem.width + topLevelRowLayout.spacing |
||||
y: valueGrid.y |
||||
width: valueGrid.width |
||||
height: valueGrid.height |
||||
visible: settingsUnlocked |
||||
onClicked: { |
||||
var item = valueGrid.childAt(mouse.x, mouse.y) |
||||
//console.log(item, item ? item.instrumentValueData : "null", item && item.parent ? item.parent.instrumentValueData : "null") |
||||
if (item && item.instrumentValueData !== undefined) { |
||||
mainWindow.showPopupDialog(valueEditDialog, { instrumentValueData: item.instrumentValueData }) |
||||
} |
||||
} |
||||
|
||||
/*Rectangle { |
||||
anchors.fill: parent |
||||
border.color: "green" |
||||
border.width: 1 |
||||
color: "transparent" |
||||
}*/ |
||||
} |
||||
|
||||
Component { |
||||
id: valueEditDialog |
||||
|
||||
InstrumentValueEditDialog { } |
||||
} |
||||
} |
||||
|
@ -1,156 +0,0 @@
@@ -1,156 +0,0 @@
|
||||
/**************************************************************************** |
||||
* |
||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
import QtQuick 2.12 |
||||
import QtQuick.Layouts 1.2 |
||||
import QtQuick.Controls 2.5 |
||||
|
||||
import QGroundControl 1.0 |
||||
import QGroundControl.Controls 1.0 |
||||
import QGroundControl.ScreenTools 1.0 |
||||
import QGroundControl.Palette 1.0 |
||||
|
||||
Item { |
||||
id: root |
||||
height: value.y + value.height |
||||
|
||||
property var instrumentValueData: null |
||||
property bool recalcOk: false |
||||
|
||||
property var _rgFontSizes: [ ScreenTools.defaultFontPointSize, ScreenTools.smallFontPointSize, ScreenTools.mediumFontPointSize, ScreenTools.largeFontPointSize ] |
||||
property var _rgFontSizeRatios: [ 1, ScreenTools.smallFontPointRatio, ScreenTools.mediumFontPointRatio, ScreenTools.largeFontPointRatio ] |
||||
property real _doubleDescent: ScreenTools.defaultFontDescent * 2 |
||||
property real _tightDefaultFontHeight: ScreenTools.defaultFontPixelHeight - _doubleDescent |
||||
property var _rgFontSizeTightHeights: [ _tightDefaultFontHeight * _rgFontSizeRatios[0] + 2, _tightDefaultFontHeight * _rgFontSizeRatios[1] + 2, _tightDefaultFontHeight * _rgFontSizeRatios[2] + 2, _tightDefaultFontHeight * _rgFontSizeRatios[3] + 2 ] |
||||
property real _tightHeight: _rgFontSizeTightHeights[instrumentValueData.instrumentValueArea.fontSize] |
||||
property real _fontSize: _rgFontSizes[instrumentValueData.instrumentValueArea.fontSize] |
||||
property real _horizontalLabelSpacing: ScreenTools.defaultFontPixelWidth |
||||
property real _blankEntryHeight: ScreenTools.defaultFontPixelHeight * 2 |
||||
property bool _showIcon: instrumentValueData.icon || instrumentValueData.rangeType === InstrumentValueData.IconSelectRange |
||||
|
||||
// After fighting with using layout and/or anchors I gave up and just do a manual recalc to position items which ends up being much simpler |
||||
function recalcPositions() { |
||||
if (!recalcOk) { |
||||
return |
||||
} |
||||
var smallVerticalSpacing = 2 |
||||
var halfWidth = width / 2 |
||||
var halfHorizontalSpacing = _horizontalLabelSpacing / 2 |
||||
if (_showIcon) { |
||||
if (instrumentValueData.instrumentValueArea.orientation === InstrumentValueArea.VerticalOrientation) { |
||||
valueIcon.x = (width - valueIcon.width) / 2 |
||||
valueIcon.y = 0 |
||||
value.x = (width - value.width) / 2 |
||||
value.y = valueIcon.height + smallVerticalSpacing |
||||
} else { |
||||
value.y = 0 // value assumed to be taller |
||||
valueIcon.y = (value.height - valueIcon.height) / 2 |
||||
value.x = halfWidth + halfHorizontalSpacing |
||||
valueIcon.x = halfWidth - halfHorizontalSpacing - valueIcon.width |
||||
} |
||||
label.x = label.y = 0 |
||||
} else { |
||||
if (instrumentValueData.text) { |
||||
if (instrumentValueData.instrumentValueArea.orientation === InstrumentValueArea.VerticalOrientation) { |
||||
label.x = (width - label.width) / 2 |
||||
label.y = 0 |
||||
value.x = (width - value.width) / 2 |
||||
value.y = label.height + smallVerticalSpacing |
||||
} else { |
||||
value.y = 0 // value assumed to be taller |
||||
label.y = (value.height - label.height) / 2 |
||||
value.x = halfWidth + halfHorizontalSpacing |
||||
label.x = halfWidth - halfHorizontalSpacing - label.width |
||||
} |
||||
} else { |
||||
value.x = (width - value.width) / 2 |
||||
value.y = (height - value.height) / 2 |
||||
} |
||||
valueIcon.x = valueIcon.y = 0 |
||||
} |
||||
} |
||||
|
||||
onRecalcOkChanged: recalcPositions() |
||||
onWidthChanged: recalcPositions() |
||||
|
||||
Connections { |
||||
target: instrumentValueData |
||||
onIconChanged: recalcPositions() |
||||
} |
||||
|
||||
QGCColoredImage { |
||||
id: valueIcon |
||||
height: _tightHeight |
||||
width: height |
||||
source: icon |
||||
sourceSize.height: height |
||||
fillMode: Image.PreserveAspectFit |
||||
mipmap: true |
||||
smooth: true |
||||
color: instrumentValueData.isValidColor(instrumentValueData.currentColor) ? instrumentValueData.currentColor : qgcPal.text |
||||
opacity: instrumentValueData.currentOpacity |
||||
visible: _showIcon |
||||
onWidthChanged: root.recalcPositions() |
||||
onHeightChanged: root.recalcPositions() |
||||
|
||||
property string icon |
||||
readonly property string iconPrefix: "/InstrumentValueIcons/" |
||||
|
||||
function updateIcon() { |
||||
if (instrumentValueData.rangeType === InstrumentValueData.IconSelectRange) { |
||||
icon = iconPrefix + instrumentValueData.currentIcon |
||||
} else if (instrumentValueData.icon) { |
||||
icon = iconPrefix + instrumentValueData.icon |
||||
} else { |
||||
icon = "" |
||||
} |
||||
} |
||||
|
||||
Connections { |
||||
target: instrumentValueData |
||||
onRangeTypeChanged: valueIcon.updateIcon() |
||||
onCurrentIconChanged: valueIcon.updateIcon() |
||||
onIconChanged: valueIcon.updateIcon() |
||||
} |
||||
Component.onCompleted: updateIcon(); |
||||
} |
||||
|
||||
QGCLabel { |
||||
id: blank |
||||
anchors.horizontalCenter: parent.horizontalCenter |
||||
height: _columnButtonsTotalHeight |
||||
font.pointSize: ScreenTools.smallFontPointSize |
||||
text: _settingsUnlocked ? qsTr("BLANK") : "" |
||||
horizontalAlignment: Text.AlignHCenter |
||||
verticalAlignment: Text.AlignVCenter |
||||
visible: !instrumentValueData.fact |
||||
onWidthChanged: root.recalcPositions() |
||||
onHeightChanged: root.recalcPositions() |
||||
} |
||||
|
||||
QGCLabel { |
||||
id: label |
||||
height: _tightHeight |
||||
text: instrumentValueData.text |
||||
verticalAlignment: Text.AlignVCenter |
||||
visible: !_showIcon |
||||
onWidthChanged: root.recalcPositions() |
||||
onHeightChanged: root.recalcPositions() |
||||
} |
||||
|
||||
QGCLabel { |
||||
id: value |
||||
font.pointSize: _fontSize |
||||
text: visible ? (instrumentValueData.fact.enumOrValueString + (instrumentValueData.showUnits ? instrumentValueData.fact.units : "")) : "" |
||||
verticalAlignment: Text.AlignVCenter |
||||
visible: instrumentValueData.fact |
||||
onWidthChanged: root.recalcPositions() |
||||
onHeightChanged: root.recalcPositions() |
||||
} |
||||
} |
@ -1,363 +0,0 @@
@@ -1,363 +0,0 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#include "InstrumentValueArea.h" |
||||
#include "InstrumentValueData.h" |
||||
#include "QGCApplication.h" |
||||
#include "QGCCorePlugin.h" |
||||
|
||||
#include <QSettings> |
||||
|
||||
const QString InstrumentValueArea::_valuePageUserSettingsGroup ("ValuePage.userSettings"); |
||||
const QString InstrumentValueArea::valuePageDefaultSettingsGroup ("ValuePage.defaultSettings"); |
||||
|
||||
const char* InstrumentValueArea::_rowsKey = "rows"; |
||||
const char* InstrumentValueArea::_columnsKey = "columns"; |
||||
const char* InstrumentValueArea::_fontSizeKey = "fontSize"; |
||||
const char* InstrumentValueArea::_orientationKey = "orientation"; |
||||
const char* InstrumentValueArea::_versionKey = "version"; |
||||
const char* InstrumentValueArea::_factGroupNameKey = "groupName"; |
||||
const char* InstrumentValueArea::_factNameKey = "factName"; |
||||
const char* InstrumentValueArea::_textKey = "text"; |
||||
const char* InstrumentValueArea::_showUnitsKey = "showUnits"; |
||||
const char* InstrumentValueArea::_iconKey = "icon"; |
||||
const char* InstrumentValueArea::_rangeTypeKey = "rangeType"; |
||||
const char* InstrumentValueArea::_rangeValuesKey = "rangeValues"; |
||||
const char* InstrumentValueArea::_rangeColorsKey = "rangeColors"; |
||||
const char* InstrumentValueArea::_rangeIconsKey = "rangeIcons"; |
||||
const char* InstrumentValueArea::_rangeOpacitiesKey = "rangeOpacities"; |
||||
|
||||
const char* InstrumentValueArea::_deprecatedGroupKey = "ValuesWidget"; |
||||
|
||||
QStringList InstrumentValueArea::_iconNames; |
||||
|
||||
// Important: The indices of these strings must match the InstrumentValueArea::FontSize enum
|
||||
const QStringList InstrumentValueArea::_fontSizeNames = { |
||||
QT_TRANSLATE_NOOP("InstrumentValueArea", "Default"), |
||||
QT_TRANSLATE_NOOP("InstrumentValueArea", "Small"), |
||||
QT_TRANSLATE_NOOP("InstrumentValueArea", "Medium"), |
||||
QT_TRANSLATE_NOOP("InstrumentValueArea", "Large"), |
||||
}; |
||||
|
||||
InstrumentValueArea::InstrumentValueArea(QQuickItem* parent) |
||||
: QQuickItem(parent) |
||||
, _rowValues(new QmlObjectListModel(this)) |
||||
{ |
||||
if (_iconNames.isEmpty()) { |
||||
QDir iconDir(":/InstrumentValueIcons/"); |
||||
_iconNames = iconDir.entryList(); |
||||
} |
||||
|
||||
_connectSignals(); |
||||
} |
||||
|
||||
InstrumentValueArea::InstrumentValueArea(const QString& defaultSettingsGroup) |
||||
: QQuickItem (nullptr) |
||||
, _defaultSettingsGroup (defaultSettingsGroup) |
||||
, _rowValues (new QmlObjectListModel(this)) |
||||
{ |
||||
|
||||
_connectSignals(); |
||||
} |
||||
|
||||
void InstrumentValueArea::_connectSignals(void) |
||||
{ |
||||
connect(this, &InstrumentValueArea::fontSizeChanged, this, &InstrumentValueArea::_saveSettings); |
||||
connect(this, &InstrumentValueArea::orientationChanged, this, &InstrumentValueArea::_saveSettings); |
||||
} |
||||
|
||||
void InstrumentValueArea::componentComplete(void) |
||||
{ |
||||
QQuickItem::componentComplete(); |
||||
|
||||
// We should know settingsGroup/defaultSettingsGroup now so we can load settings
|
||||
_loadSettings(); |
||||
} |
||||
|
||||
InstrumentValueData* InstrumentValueArea::_createNewInstrumentValueWorker(QmlObjectListModel* rowModel) |
||||
{ |
||||
InstrumentValueData* value = new InstrumentValueData(this, rowModel); |
||||
|
||||
connect(value, &InstrumentValueData::factNameChanged, this, &InstrumentValueArea::_saveSettings); |
||||
connect(value, &InstrumentValueData::factGroupNameChanged, this, &InstrumentValueArea::_saveSettings); |
||||
connect(value, &InstrumentValueData::textChanged, this, &InstrumentValueArea::_saveSettings); |
||||
connect(value, &InstrumentValueData::showUnitsChanged, this, &InstrumentValueArea::_saveSettings); |
||||
connect(value, &InstrumentValueData::iconChanged, this, &InstrumentValueArea::_saveSettings); |
||||
connect(value, &InstrumentValueData::rangeTypeChanged, this, &InstrumentValueArea::_saveSettings); |
||||
connect(value, &InstrumentValueData::rangeValuesChanged, this, &InstrumentValueArea::_saveSettings); |
||||
connect(value, &InstrumentValueData::rangeColorsChanged, this, &InstrumentValueArea::_saveSettings); |
||||
connect(value, &InstrumentValueData::rangeOpacitiesChanged, this, &InstrumentValueArea::_saveSettings); |
||||
connect(value, &InstrumentValueData::rangeIconsChanged, this, &InstrumentValueArea::_saveSettings); |
||||
|
||||
return value; |
||||
} |
||||
|
||||
InstrumentValueData* InstrumentValueArea::appendColumn(int rowIndex) |
||||
{ |
||||
InstrumentValueData* newValue = nullptr; |
||||
|
||||
if (rowIndex >= 0 && rowIndex < _rowValues->count()) { |
||||
QmlObjectListModel* row = _rowValues->value<QmlObjectListModel*>(rowIndex); |
||||
newValue = _createNewInstrumentValueWorker(row); |
||||
row->append(newValue); |
||||
} |
||||
_saveSettings(); |
||||
|
||||
return newValue; |
||||
} |
||||
|
||||
void InstrumentValueArea::deleteLastColumn(int rowIndex) |
||||
{ |
||||
if (rowIndex >= 0 && rowIndex < _rowValues->count()) { |
||||
QmlObjectListModel* row = _rowValues->value<QmlObjectListModel*>(rowIndex); |
||||
|
||||
if (rowIndex != 0 || row->count() > 1) { |
||||
row->removeAt(row->count() - 1); |
||||
} |
||||
if (row->count() == 0) { |
||||
// Last column was deleted, delete the row as well
|
||||
_rowValues->removeAt(rowIndex); |
||||
} |
||||
} |
||||
_saveSettings(); |
||||
} |
||||
|
||||
QmlObjectListModel* InstrumentValueArea::appendRow(bool addBlanksColumn) |
||||
{ |
||||
QmlObjectListModel* newRow = new QmlObjectListModel(_rowValues); |
||||
_rowValues->append(newRow); |
||||
int rowIndex = _rowValues->count() - 1; |
||||
if (addBlanksColumn) { |
||||
appendColumn(rowIndex); |
||||
} |
||||
_saveSettings(); |
||||
return newRow; |
||||
} |
||||
|
||||
QmlObjectListModel* InstrumentValueArea::insertRow(int atIndex, bool addBlanksColumn) |
||||
{ |
||||
QmlObjectListModel* newRow = nullptr; |
||||
|
||||
if (atIndex >= 0 && atIndex < _rowValues->count() + 1) { |
||||
QmlObjectListModel* newRow = new QmlObjectListModel(_rowValues); |
||||
_rowValues->insert(atIndex, newRow); |
||||
if (addBlanksColumn) { |
||||
appendColumn(atIndex); |
||||
} |
||||
_saveSettings(); |
||||
} |
||||
return newRow; |
||||
} |
||||
|
||||
void InstrumentValueArea::deleteRow(int rowIndex) |
||||
{ |
||||
if (rowIndex >= 0 && rowIndex < _rowValues->count()) { |
||||
if (_rowValues->count() > 1) { |
||||
_rowValues->removeAt(rowIndex); |
||||
} |
||||
_saveSettings(); |
||||
} |
||||
} |
||||
|
||||
bool InstrumentValueArea::_validRowIndex(int rowIndex) |
||||
{ |
||||
return rowIndex >= 0 && rowIndex < _rowValues->count(); |
||||
} |
||||
|
||||
void InstrumentValueArea::_checkForDeprecatedSettings(void) |
||||
{ |
||||
QSettings settings; |
||||
|
||||
if (settings.childGroups().contains(_deprecatedGroupKey)) { |
||||
settings.remove(_deprecatedGroupKey); |
||||
qgcApp()->showAppMessage(tr("The support for custom instrument value display has changed. The display will be reset to the new default setup. You will need to modify it again to suit your needs."), tr("Instrument Values")); |
||||
} |
||||
} |
||||
|
||||
void InstrumentValueArea::_saveSettings(void) |
||||
{ |
||||
if (_preventSaveSettings) { |
||||
return; |
||||
} |
||||
|
||||
QSettings settings; |
||||
|
||||
if (_userSettingsGroup.isEmpty()) { |
||||
// This means we are setting up default settings
|
||||
settings.beginGroup(_defaultSettingsGroup); |
||||
} else { |
||||
// This means we are saving user modifications
|
||||
settings.remove(_defaultSettingsGroup); |
||||
settings.beginGroup(_userSettingsGroup); |
||||
} |
||||
|
||||
settings.remove(""); // Remove any previous settings
|
||||
|
||||
settings.setValue(_versionKey, 1); |
||||
settings.setValue(_fontSizeKey, _fontSize); |
||||
settings.setValue(_orientationKey, _orientation); |
||||
|
||||
settings.beginWriteArray(_rowsKey); |
||||
|
||||
for (int rowIndex=0; rowIndex<_rowValues->count(); rowIndex++) { |
||||
QmlObjectListModel* colValues = _rowValues->value<QmlObjectListModel*>(rowIndex); |
||||
|
||||
settings.setArrayIndex(rowIndex); |
||||
settings.beginWriteArray(_columnsKey); |
||||
|
||||
for (int colIndex=0; colIndex<colValues->count(); colIndex++) { |
||||
InstrumentValueData* value = colValues->value<InstrumentValueData*>(colIndex); |
||||
|
||||
settings.setArrayIndex(colIndex); |
||||
|
||||
settings.setValue(_textKey, value->text()); |
||||
settings.setValue(_showUnitsKey, value->showUnits()); |
||||
settings.setValue(_iconKey, value->icon()); |
||||
settings.setValue(_rangeTypeKey, value->rangeType()); |
||||
|
||||
if (value->rangeType() != InstrumentValueData::NoRangeInfo) { |
||||
settings.setValue(_rangeValuesKey, value->rangeValues()); |
||||
} |
||||
|
||||
switch (value->rangeType()) { |
||||
case InstrumentValueData::NoRangeInfo: |
||||
break; |
||||
case InstrumentValueData::ColorRange: |
||||
settings.setValue(_rangeColorsKey, value->rangeColors()); |
||||
break; |
||||
case InstrumentValueData::OpacityRange: |
||||
settings.setValue(_rangeOpacitiesKey, value->rangeOpacities()); |
||||
break; |
||||
case InstrumentValueData::IconSelectRange: |
||||
settings.setValue(_rangeIconsKey, value->rangeIcons()); |
||||
break; |
||||
} |
||||
|
||||
if (value->fact()) { |
||||
settings.setValue(_factGroupNameKey, value->factGroupName()); |
||||
settings.setValue(_factNameKey, value->factName()); |
||||
} else { |
||||
settings.setValue(_factGroupNameKey, ""); |
||||
settings.setValue(_factNameKey, ""); |
||||
} |
||||
} |
||||
|
||||
settings.endArray(); |
||||
} |
||||
|
||||
settings.endArray(); |
||||
} |
||||
|
||||
void InstrumentValueArea::_loadSettings(void) |
||||
{ |
||||
_checkForDeprecatedSettings(); |
||||
|
||||
QSettings settings; |
||||
|
||||
_rowValues->deleteLater(); |
||||
_rowValues = new QmlObjectListModel(this); |
||||
emit rowValuesChanged(_rowValues); |
||||
|
||||
if (!settings.childGroups().contains(_userSettingsGroup)) { |
||||
qgcApp()->toolbox()->corePlugin()->instrumentValueAreaCreateDefaultSettings(_defaultSettingsGroup); |
||||
} |
||||
|
||||
_preventSaveSettings = true; |
||||
|
||||
if (settings.childGroups().contains(_defaultSettingsGroup)) { |
||||
settings.beginGroup(_defaultSettingsGroup); |
||||
} else { |
||||
settings.beginGroup(_userSettingsGroup); |
||||
} |
||||
|
||||
int version = settings.value(_versionKey, 0).toInt(); |
||||
if (version != 1) { |
||||
qgcApp()->showAppMessage(tr("Load Settings"), tr("Settings version %1 for %2 is not supported. Setup will be reset to defaults.").arg(version).arg(_userSettingsGroup)); |
||||
settings.remove(""); |
||||
qgcApp()->toolbox()->corePlugin()->instrumentValueAreaCreateDefaultSettings(_defaultSettingsGroup); |
||||
} |
||||
_fontSize = settings.value(_fontSizeKey, DefaultFontSize).value<FontSize>(); |
||||
_orientation = settings.value(_orientationKey, VerticalOrientation).value<Orientation>(); |
||||
|
||||
int cRows = settings.beginReadArray(_rowsKey); |
||||
|
||||
for (int rowIndex=0; rowIndex<cRows; rowIndex++) { |
||||
appendRow(false /* addBlankColumns */); |
||||
|
||||
settings.setArrayIndex(rowIndex); |
||||
int cCols = settings.beginReadArray(_columnsKey); |
||||
|
||||
for (int colIndex=0; colIndex<cCols; colIndex++) { |
||||
settings.setArrayIndex(colIndex); |
||||
|
||||
InstrumentValueData* value = appendColumn(rowIndex); |
||||
|
||||
QString factName = settings.value(_factNameKey).toString(); |
||||
if (!factName.isEmpty()) { |
||||
value->setFact(settings.value(_factGroupNameKey).toString(), factName); |
||||
} |
||||
|
||||
value->setText (settings.value(_textKey).toString()); |
||||
value->setShowUnits (settings.value(_showUnitsKey, true).toBool()); |
||||
value->setIcon (settings.value(_iconKey).toString()); |
||||
value->setRangeType (settings.value(_rangeTypeKey, InstrumentValueData::NoRangeInfo).value<InstrumentValueData::RangeType>()); |
||||
|
||||
if (value->rangeType() != InstrumentValueData::NoRangeInfo) { |
||||
value->setRangeValues(settings.value(_rangeValuesKey).value<QVariantList>()); |
||||
} |
||||
switch (value->rangeType()) { |
||||
case InstrumentValueData::NoRangeInfo: |
||||
break; |
||||
case InstrumentValueData::ColorRange: |
||||
value->setRangeColors(settings.value(_rangeColorsKey).value<QVariantList>()); |
||||
break; |
||||
case InstrumentValueData::OpacityRange: |
||||
value->setRangeOpacities(settings.value(_rangeOpacitiesKey).value<QVariantList>()); |
||||
break; |
||||
case InstrumentValueData::IconSelectRange: |
||||
value->setRangeIcons(settings.value(_rangeIconsKey).value<QVariantList>()); |
||||
break; |
||||
} |
||||
} |
||||
|
||||
settings.endArray(); |
||||
} |
||||
|
||||
settings.endArray(); |
||||
|
||||
_preventSaveSettings = false; |
||||
|
||||
// Use defaults if nothing there
|
||||
if (_rowValues->count() == 0) { |
||||
_rowValues->deleteLater(); |
||||
emit rowValuesChanged(_rowValues); |
||||
} |
||||
} |
||||
|
||||
void InstrumentValueArea::resetToDefaults(void) |
||||
{ |
||||
QSettings settings; |
||||
|
||||
settings.remove(_userSettingsGroup); |
||||
|
||||
_loadSettings(); |
||||
} |
||||
|
||||
QString InstrumentValueArea::_pascalCase(const QString& text) |
||||
{ |
||||
return text[0].toUpper() + text.right(text.length() - 1); |
||||
} |
||||
|
||||
void InstrumentValueArea::setFontSize(FontSize fontSize) |
||||
{ |
||||
if (fontSize != _fontSize) { |
||||
_fontSize = fontSize; |
||||
emit fontSizeChanged(fontSize); |
||||
} |
||||
} |
@ -0,0 +1,82 @@
@@ -0,0 +1,82 @@
|
||||
/**************************************************************************** |
||||
* |
||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
import QtQuick 2.12 |
||||
import QtQuick.Layouts 1.2 |
||||
import QtQuick.Controls 2.5 |
||||
|
||||
import QGroundControl 1.0 |
||||
import QGroundControl.Controls 1.0 |
||||
import QGroundControl.Templates 1.0 |
||||
import QGroundControl.ScreenTools 1.0 |
||||
import QGroundControl.Palette 1.0 |
||||
|
||||
ColumnLayout { |
||||
property var instrumentValueData: null |
||||
|
||||
property bool _verticalOrientation: instrumentValueData.factValueGrid.orientation === FactValueGrid.VerticalOrientation |
||||
property var _rgFontSizes: [ ScreenTools.defaultFontPointSize, ScreenTools.smallFontPointSize, ScreenTools.mediumFontPointSize, ScreenTools.largeFontPointSize ] |
||||
property var _rgFontSizeRatios: [ 1, ScreenTools.smallFontPointRatio, ScreenTools.mediumFontPointRatio, ScreenTools.largeFontPointRatio ] |
||||
property real _doubleDescent: ScreenTools.defaultFontDescent * 2 |
||||
property real _tightDefaultFontHeight: ScreenTools.defaultFontPixelHeight - _doubleDescent |
||||
property var _rgFontSizeTightHeights: [ _tightDefaultFontHeight * _rgFontSizeRatios[0] + 2, _tightDefaultFontHeight * _rgFontSizeRatios[1] + 2, _tightDefaultFontHeight * _rgFontSizeRatios[2] + 2, _tightDefaultFontHeight * _rgFontSizeRatios[3] + 2 ] |
||||
property real _tightHeight: _rgFontSizeTightHeights[instrumentValueData.factValueGrid.fontSize] |
||||
property bool _iconVisible: instrumentValueData.rangeType === InstrumentValueData.IconSelectRange || instrumentValueData.icon |
||||
|
||||
QGCPalette { id: qgcPal; colorGroupEnabled: enabled } |
||||
|
||||
QGCColoredImage { |
||||
id: valueIcon |
||||
Layout.alignment: _verticalOrientation ? Qt.AlignHCenter : Qt.AlignVCenter |
||||
height: _tightHeight * 0.75 |
||||
width: height |
||||
sourceSize.height: height |
||||
fillMode: Image.PreserveAspectFit |
||||
mipmap: true |
||||
smooth: true |
||||
color: instrumentValueData.isValidColor(instrumentValueData.currentColor) ? instrumentValueData.currentColor : qgcPal.text |
||||
opacity: instrumentValueData.currentOpacity |
||||
visible: _iconVisible |
||||
|
||||
|
||||
readonly property string iconPrefix: "/InstrumentValueIcons/" |
||||
|
||||
function updateIcon() { |
||||
if (instrumentValueData.rangeType === InstrumentValueData.IconSelectRange) { |
||||
valueIcon.source = iconPrefix + instrumentValueData.currentIcon |
||||
} else if (instrumentValueData.icon) { |
||||
valueIcon.source = iconPrefix + instrumentValueData.icon |
||||
} else { |
||||
valueIcon.source = "" |
||||
} |
||||
} |
||||
|
||||
Connections { |
||||
target: instrumentValueData |
||||
onRangeTypeChanged: valueIcon.updateIcon() |
||||
onCurrentIconChanged: valueIcon.updateIcon() |
||||
onIconChanged: valueIcon.updateIcon() |
||||
} |
||||
Component.onCompleted: updateIcon(); |
||||
|
||||
Rectangle { |
||||
anchors.fill: valueIcon |
||||
color: qgcPal.text |
||||
visible: valueIcon.status === Image.Error |
||||
} |
||||
} |
||||
|
||||
QGCLabel { |
||||
Layout.alignment: _verticalOrientation ? Qt.AlignHCenter : Qt.AlignVCenter |
||||
height: _tightHeight |
||||
font.pointSize: ScreenTools.smallFontPointSize |
||||
text: instrumentValueData.text |
||||
visible: !_iconVisible |
||||
} |
||||
} |
@ -0,0 +1,46 @@
@@ -0,0 +1,46 @@
|
||||
/**************************************************************************** |
||||
* |
||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
import QtQuick 2.12 |
||||
import QtQuick.Layouts 1.2 |
||||
import QtQuick.Controls 2.5 |
||||
|
||||
import QGroundControl 1.0 |
||||
import QGroundControl.Controls 1.0 |
||||
import QGroundControl.Templates 1.0 |
||||
import QGroundControl.Templates 1.0 |
||||
import QGroundControl.ScreenTools 1.0 |
||||
import QGroundControl.Palette 1.0 |
||||
|
||||
ColumnLayout { |
||||
property var instrumentValueData: null |
||||
property bool settingsUnlocked: false |
||||
|
||||
property bool _verticalOrientation: instrumentValueData.factValueGrid.orientation === FactValueGrid.VerticalOrientation |
||||
property var _rgFontSizes: [ ScreenTools.defaultFontPointSize, ScreenTools.smallFontPointSize, ScreenTools.mediumFontPointSize, ScreenTools.largeFontPointSize ] |
||||
property var _rgFontSizeRatios: [ 1, ScreenTools.smallFontPointRatio, ScreenTools.mediumFontPointRatio, ScreenTools.largeFontPointRatio ] |
||||
property real _doubleDescent: ScreenTools.defaultFontDescent * 2 |
||||
property real _tightDefaultFontHeight: ScreenTools.defaultFontPixelHeight - _doubleDescent |
||||
property var _rgFontSizeTightHeights: [ _tightDefaultFontHeight * _rgFontSizeRatios[0] + 2, _tightDefaultFontHeight * _rgFontSizeRatios[1] + 2, _tightDefaultFontHeight * _rgFontSizeRatios[2] + 2, _tightDefaultFontHeight * _rgFontSizeRatios[3] + 2 ] |
||||
property real _tightHeight: _rgFontSizeTightHeights[instrumentValueData.factValueGrid.fontSize] |
||||
property real _fontSize: _rgFontSizes[instrumentValueData.factValueGrid.fontSize] |
||||
property real _horizontalLabelSpacing: ScreenTools.defaultFontPixelWidth |
||||
property bool _valueVisible: instrumentValueData.fact |
||||
property real _width: 0 |
||||
property real _height: 0 |
||||
|
||||
QGCLabel { |
||||
Layout.alignment: _verticalOrientation ? Qt.AlignHCenter : Qt.AlignVCenter |
||||
font.pointSize: _fontSize |
||||
text: instrumentValueData.fact.enumOrValueString + (instrumentValueData.showUnits ? " " + instrumentValueData.fact.units : "") |
||||
visible: _valueVisible |
||||
|
||||
QGCPalette { id: qgcPal; colorGroupEnabled: enabled } |
||||
} |
||||
} |
@ -1,108 +1,110 @@
@@ -1,108 +1,110 @@
|
||||
Module QGroundControl.Controls |
||||
|
||||
AnalyzePage 1.0 AnalyzePage.qml |
||||
AppMessages 1.0 AppMessages.qml |
||||
AxisMonitor 1.0 AxisMonitor.qml |
||||
CameraCalcCamera 1.0 CameraCalcCamera.qml |
||||
CameraCalcGrid 1.0 CameraCalcGrid.qml |
||||
ContentAreaCalc 1.0 ContentAreaCalc.qml |
||||
APMSubMotorDisplay 1.0 APMSubMotorDisplay.qml |
||||
CameraSection 1.0 CameraSection.qml |
||||
ClickableColor 1.0 ClickableColor.qml |
||||
DeadMouseArea 1.0 DeadMouseArea.qml |
||||
DropButton 1.0 DropButton.qml |
||||
DropPanel 1.0 DropPanel.qml |
||||
EditPositionDialog 1.0 EditPositionDialog.qml |
||||
ExclusiveGroupItem 1.0 ExclusiveGroupItem.qml |
||||
FactSliderPanel 1.0 FactSliderPanel.qml |
||||
FileButton 1.0 FileButton.qml |
||||
FlightModeDropdown 1.0 FlightModeDropdown.qml |
||||
FlightModeMenu 1.0 FlightModeMenu.qml |
||||
GeoFenceEditor 1.0 GeoFenceEditor.qml |
||||
GeoFenceMapVisuals 1.0 GeoFenceMapVisuals.qml |
||||
HackFileDialog 1.0 HackFileDialog.qml |
||||
HeightIndicator 1.0 HeightIndicator.qml |
||||
IndicatorButton 1.0 IndicatorButton.qml |
||||
InstrumentValue 1.0 InstrumentValue.qml |
||||
InstrumentValueArea 1.0 InstrumentValueArea.qml |
||||
InstrumentValueEditDialog 1.0 InstrumentValueEditDialog.qml |
||||
JoystickThumbPad 1.0 JoystickThumbPad.qml |
||||
KMLOrSHPFileDialog 1.0 KMLOrSHPFileDialog.qml |
||||
LogReplayStatusBar 1.0 LogReplayStatusBar.qml |
||||
MainWindowSavedState 1.0 MainWindowSavedState.qml |
||||
MAVLinkMessageButton 1.0 MAVLinkMessageButton.qml |
||||
MissionCommandDialog 1.0 MissionCommandDialog.qml |
||||
MissionItemEditor 1.0 MissionItemEditor.qml |
||||
MissionItemIndexLabel 1.0 MissionItemIndexLabel.qml |
||||
MissionItemMapVisual 1.0 MissionItemMapVisual.qml |
||||
MissionItemStatus 1.0 MissionItemStatus.qml |
||||
ModeSwitchDisplay 1.0 ModeSwitchDisplay.qml |
||||
MultiRotorMotorDisplay 1.0 MultiRotorMotorDisplay.qml |
||||
OfflineMapButton 1.0 OfflineMapButton.qml |
||||
PageView 1.0 PageView.qml |
||||
ParameterEditor 1.0 ParameterEditor.qml |
||||
ParameterEditorDialog 1.0 ParameterEditorDialog.qml |
||||
PIDTuning 1.0 PIDTuning.qml |
||||
PlanEditToolbar 1.0 PlanEditToolbar.qml |
||||
PreFlightCheckButton 1.0 PreFlightCheckButton.qml |
||||
PreFlightCheckGroup 1.0 PreFlightCheckGroup.qml |
||||
PreFlightCheckModel 1.0 PreFlightCheckModel.qml |
||||
QGCButton 1.0 QGCButton.qml |
||||
QGCCheckBox 1.0 QGCCheckBox.qml |
||||
QGCColoredImage 1.0 QGCColoredImage.qml |
||||
QGCComboBox 1.0 QGCComboBox.qml |
||||
QGCControlDebug 1.0 QGCControlDebug.qml |
||||
QGCDynamicObjectManager 1.0 QGCDynamicObjectManager.qml |
||||
QGCFileDialog 1.0 QGCFileDialog.qml |
||||
QGCFlickable 1.0 QGCFlickable.qml |
||||
QGCGroupBox 1.0 QGCGroupBox.qml |
||||
QGCLabel 1.0 QGCLabel.qml |
||||
QGCListView 1.0 QGCListView.qml |
||||
QGCMapCircleVisuals 1.0 QGCMapCircleVisuals.qml |
||||
QGCMapLabel 1.0 QGCMapLabel.qml |
||||
QGCMapPolygonVisuals 1.0 QGCMapPolygonVisuals.qml |
||||
QGCMapPolylineVisuals 1.0 QGCMapPolylineVisuals.qml |
||||
QGCMenu 1.0 QGCMenu.qml |
||||
QGCMenuItem 1.0 QGCMenuItem.qml |
||||
QGCMenuSeparator 1.0 QGCMenuSeparator.qml |
||||
QGCMouseArea 1.0 QGCMouseArea.qml |
||||
QGCMovableItem 1.0 QGCMovableItem.qml |
||||
QGCOptionsComboBox 1.0 QGCOptionsComboBox.qml |
||||
QGCPipOverlay 1.0 QGCPipOverlay.qml |
||||
QGCPipState 1.0 QGCPipState.qml |
||||
QGCPopupDialog 1.0 QGCPopupDialog.qml |
||||
QGCPopupDialogContainer 1.0 QGCPopupDialogContainer.qml |
||||
QGCRadioButton 1.0 QGCRadioButton.qml |
||||
QGCSlider 1.0 QGCSlider.qml |
||||
QGCSwitch 1.0 QGCSwitch.qml |
||||
QGCTabBar 1.0 QGCTabBar.qml |
||||
QGCTabButton 1.0 QGCTabButton.qml |
||||
QGCTextField 1.0 QGCTextField.qml |
||||
QGCToolBarButton 1.0 QGCToolBarButton.qml |
||||
QGCToolInsets 1.0 QGCToolInsets.qml |
||||
QGCViewDialog 1.0 QGCViewDialog.qml |
||||
QGCViewDialogContainer 1.0 QGCViewDialogContainer.qml |
||||
QGCViewMessage 1.0 QGCViewMessage.qml |
||||
RallyPointEditorHeader 1.0 RallyPointEditorHeader.qml |
||||
RallyPointItemEditor 1.0 RallyPointItemEditor.qml |
||||
RallyPointMapVisuals 1.0 RallyPointMapVisuals.qml |
||||
RCChannelMonitor 1.0 RCChannelMonitor.qml |
||||
RCToParamDialog 1.0 RCToParamDialog.qml |
||||
RoundButton 1.0 RoundButton.qml |
||||
SectionHeader 1.0 SectionHeader.qml |
||||
SetupPage 1.0 SetupPage.qml |
||||
SignalStrength 1.0 SignalStrength.qml |
||||
SimpleItemMapVisuals 1.0 SimpleItemMapVisuals.qml |
||||
SliderSwitch 1.0 SliderSwitch.qml |
||||
SubMenuButton 1.0 SubMenuButton.qml |
||||
SurveyMapVisuals 1.0 SurveyMapVisuals.qml |
||||
TerrainStatus 1.0 TerrainStatus.qml |
||||
TransectStyleComplexItemStats 1.0 TransectStyleComplexItemStats.qml |
||||
TransectStyleMapVisuals 1.0 TransectStyleMapVisuals.qml |
||||
ToolBarBase 1.0 ToolBarBase.qml |
||||
ToolStrip 1.0 ToolStrip.qml |
||||
VehicleRotationCal 1.0 VehicleRotationCal.qml |
||||
VehicleSummaryRow 1.0 VehicleSummaryRow.qml |
||||
ViewWidget 1.0 ViewWidget.qml |
||||
QGCHoverButton 1.0 QGCHoverButton.qml |
||||
MAVLinkChart 1.0 MAVLinkChart.qml |
||||
AnalyzePage 1.0 AnalyzePage.qml |
||||
AppMessages 1.0 AppMessages.qml |
||||
AxisMonitor 1.0 AxisMonitor.qml |
||||
CameraCalcCamera 1.0 CameraCalcCamera.qml |
||||
CameraCalcGrid 1.0 CameraCalcGrid.qml |
||||
ContentAreaCalc 1.0 ContentAreaCalc.qml |
||||
APMSubMotorDisplay 1.0 APMSubMotorDisplay.qml |
||||
CameraSection 1.0 CameraSection.qml |
||||
ClickableColor 1.0 ClickableColor.qml |
||||
DeadMouseArea 1.0 DeadMouseArea.qml |
||||
DropButton 1.0 DropButton.qml |
||||
DropPanel 1.0 DropPanel.qml |
||||
EditPositionDialog 1.0 EditPositionDialog.qml |
||||
ExclusiveGroupItem 1.0 ExclusiveGroupItem.qml |
||||
FactSliderPanel 1.0 FactSliderPanel.qml |
||||
FileButton 1.0 FileButton.qml |
||||
FlightModeDropdown 1.0 FlightModeDropdown.qml |
||||
FlightModeMenu 1.0 FlightModeMenu.qml |
||||
GeoFenceEditor 1.0 GeoFenceEditor.qml |
||||
GeoFenceMapVisuals 1.0 GeoFenceMapVisuals.qml |
||||
HackFileDialog 1.0 HackFileDialog.qml |
||||
HeightIndicator 1.0 HeightIndicator.qml |
||||
HorizontalFactValueGrid 1.0 HorizontalFactValueGrid.qml |
||||
IndicatorButton 1.0 IndicatorButton.qml |
||||
InstrumentValueLabel 1.0 InstrumentValueLabel.qml |
||||
InstrumentValueValue 1.0 InstrumentValueValue.qml |
||||
InstrumentValueEditDialog 1.0 InstrumentValueEditDialog.qml |
||||
JoystickThumbPad 1.0 JoystickThumbPad.qml |
||||
KMLOrSHPFileDialog 1.0 KMLOrSHPFileDialog.qml |
||||
LogReplayStatusBar 1.0 LogReplayStatusBar.qml |
||||
MainWindowSavedState 1.0 MainWindowSavedState.qml |
||||
MAVLinkMessageButton 1.0 MAVLinkMessageButton.qml |
||||
MissionCommandDialog 1.0 MissionCommandDialog.qml |
||||
MissionItemEditor 1.0 MissionItemEditor.qml |
||||
MissionItemIndexLabel 1.0 MissionItemIndexLabel.qml |
||||
MissionItemMapVisual 1.0 MissionItemMapVisual.qml |
||||
MissionItemStatus 1.0 MissionItemStatus.qml |
||||
ModeSwitchDisplay 1.0 ModeSwitchDisplay.qml |
||||
MultiRotorMotorDisplay 1.0 MultiRotorMotorDisplay.qml |
||||
OfflineMapButton 1.0 OfflineMapButton.qml |
||||
PageView 1.0 PageView.qml |
||||
ParameterEditor 1.0 ParameterEditor.qml |
||||
ParameterEditorDialog 1.0 ParameterEditorDialog.qml |
||||
PIDTuning 1.0 PIDTuning.qml |
||||
PlanEditToolbar 1.0 PlanEditToolbar.qml |
||||
PreFlightCheckButton 1.0 PreFlightCheckButton.qml |
||||
PreFlightCheckGroup 1.0 PreFlightCheckGroup.qml |
||||
PreFlightCheckModel 1.0 PreFlightCheckModel.qml |
||||
QGCButton 1.0 QGCButton.qml |
||||
QGCCheckBox 1.0 QGCCheckBox.qml |
||||
QGCColoredImage 1.0 QGCColoredImage.qml |
||||
QGCComboBox 1.0 QGCComboBox.qml |
||||
QGCControlDebug 1.0 QGCControlDebug.qml |
||||
QGCDynamicObjectManager 1.0 QGCDynamicObjectManager.qml |
||||
QGCFileDialog 1.0 QGCFileDialog.qml |
||||
QGCFlickable 1.0 QGCFlickable.qml |
||||
QGCGroupBox 1.0 QGCGroupBox.qml |
||||
QGCLabel 1.0 QGCLabel.qml |
||||
QGCListView 1.0 QGCListView.qml |
||||
QGCMapCircleVisuals 1.0 QGCMapCircleVisuals.qml |
||||
QGCMapLabel 1.0 QGCMapLabel.qml |
||||
QGCMapPolygonVisuals 1.0 QGCMapPolygonVisuals.qml |
||||
QGCMapPolylineVisuals 1.0 QGCMapPolylineVisuals.qml |
||||
QGCMenu 1.0 QGCMenu.qml |
||||
QGCMenuItem 1.0 QGCMenuItem.qml |
||||
QGCMenuSeparator 1.0 QGCMenuSeparator.qml |
||||
QGCMouseArea 1.0 QGCMouseArea.qml |
||||
QGCMovableItem 1.0 QGCMovableItem.qml |
||||
QGCOptionsComboBox 1.0 QGCOptionsComboBox.qml |
||||
QGCPipOverlay 1.0 QGCPipOverlay.qml |
||||
QGCPipState 1.0 QGCPipState.qml |
||||
QGCPopupDialog 1.0 QGCPopupDialog.qml |
||||
QGCPopupDialogContainer 1.0 QGCPopupDialogContainer.qml |
||||
QGCRadioButton 1.0 QGCRadioButton.qml |
||||
QGCSlider 1.0 QGCSlider.qml |
||||
QGCSwitch 1.0 QGCSwitch.qml |
||||
QGCTabBar 1.0 QGCTabBar.qml |
||||
QGCTabButton 1.0 QGCTabButton.qml |
||||
QGCTextField 1.0 QGCTextField.qml |
||||
QGCToolBarButton 1.0 QGCToolBarButton.qml |
||||
QGCToolInsets 1.0 QGCToolInsets.qml |
||||
QGCViewDialog 1.0 QGCViewDialog.qml |
||||
QGCViewDialogContainer 1.0 QGCViewDialogContainer.qml |
||||
QGCViewMessage 1.0 QGCViewMessage.qml |
||||
RallyPointEditorHeader 1.0 RallyPointEditorHeader.qml |
||||
RallyPointItemEditor 1.0 RallyPointItemEditor.qml |
||||
RallyPointMapVisuals 1.0 RallyPointMapVisuals.qml |
||||
RCChannelMonitor 1.0 RCChannelMonitor.qml |
||||
RCToParamDialog 1.0 RCToParamDialog.qml |
||||
RoundButton 1.0 RoundButton.qml |
||||
SectionHeader 1.0 SectionHeader.qml |
||||
SetupPage 1.0 SetupPage.qml |
||||
SignalStrength 1.0 SignalStrength.qml |
||||
SimpleItemMapVisuals 1.0 SimpleItemMapVisuals.qml |
||||
SliderSwitch 1.0 SliderSwitch.qml |
||||
SubMenuButton 1.0 SubMenuButton.qml |
||||
SurveyMapVisuals 1.0 SurveyMapVisuals.qml |
||||
TerrainStatus 1.0 TerrainStatus.qml |
||||
TransectStyleComplexItemStats 1.0 TransectStyleComplexItemStats.qml |
||||
TransectStyleMapVisuals 1.0 TransectStyleMapVisuals.qml |
||||
ToolBarBase 1.0 ToolBarBase.qml |
||||
ToolStrip 1.0 ToolStrip.qml |
||||
VehicleRotationCal 1.0 VehicleRotationCal.qml |
||||
VehicleSummaryRow 1.0 VehicleSummaryRow.qml |
||||
VerticalFactValueGrid 1.0 VerticalFactValueGrid.qml |
||||
ViewWidget 1.0 ViewWidget.qml |
||||
QGCHoverButton 1.0 QGCHoverButton.qml |
||||
MAVLinkChart 1.0 MAVLinkChart.qml |
||||
|
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#include "VerticalFactValueGrid.h" |
||||
#include "InstrumentValueData.h" |
||||
#include "QGCApplication.h" |
||||
#include "QGCCorePlugin.h" |
||||
|
||||
#include <QSettings> |
||||
|
||||
const QString VerticalFactValueGrid::_valuePageUserSettingsGroup ("ValuePageUserSettings2"); |
||||
const QString VerticalFactValueGrid::valuePageDefaultSettingsGroup("ValuePageDefaultSettings2"); |
||||
|
||||
VerticalFactValueGrid::VerticalFactValueGrid(QQuickItem* parent) |
||||
: FactValueGrid(parent) |
||||
{ |
||||
_orientation = VerticalOrientation; |
||||
} |
||||
|
||||
VerticalFactValueGrid::VerticalFactValueGrid(const QString& defaultSettingsGroup) |
||||
: FactValueGrid(defaultSettingsGroup) |
||||
{ |
||||
_orientation = VerticalOrientation; |
||||
} |
@ -0,0 +1,38 @@
@@ -0,0 +1,38 @@
|
||||
/****************************************************************************
|
||||
* |
||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
#pragma once |
||||
|
||||
#include "FactSystem.h" |
||||
#include "QmlObjectListModel.h" |
||||
#include "QGCApplication.h" |
||||
#include "FactValueGrid.h" |
||||
|
||||
class InstrumentValueData; |
||||
|
||||
class VerticalFactValueGrid : public FactValueGrid |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
public: |
||||
VerticalFactValueGrid(QQuickItem *parent = nullptr); |
||||
VerticalFactValueGrid(const QString& defaultSettingsGroup); |
||||
|
||||
Q_PROPERTY(QString valuePageDefaultSettingsGroup MEMBER valuePageDefaultSettingsGroup CONSTANT) |
||||
Q_PROPERTY(QString valuePageUserSettingsGroup MEMBER _valuePageUserSettingsGroup CONSTANT) |
||||
|
||||
static const QString valuePageDefaultSettingsGroup; |
||||
|
||||
private: |
||||
Q_DISABLE_COPY(VerticalFactValueGrid) |
||||
|
||||
static const QString _valuePageUserSettingsGroup; |
||||
}; |
||||
|
||||
QML_DECLARE_TYPE(VerticalFactValueGrid) |
@ -0,0 +1,165 @@
@@ -0,0 +1,165 @@
|
||||
/**************************************************************************** |
||||
* |
||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
import QtQuick 2.12 |
||||
import QtQuick.Layouts 1.2 |
||||
import QtQuick.Controls 2.5 |
||||
import QtQml 2.12 |
||||
|
||||
import QGroundControl.Templates 1.0 as T |
||||
import QGroundControl.Controls 1.0 |
||||
import QGroundControl.ScreenTools 1.0 |
||||
import QGroundControl.Controllers 1.0 |
||||
import QGroundControl.Palette 1.0 |
||||
import QGroundControl.FlightMap 1.0 |
||||
import QGroundControl 1.0 |
||||
|
||||
// Note: This control will spit out qWarnings like this: "QGridLayoutEngine::addItem: Cell (0, 1) already taken" |
||||
// This is due to Qt bug https://bugreports.qt.io/browse/QTBUG-65121 |
||||
// If this becomes a problem I'll implement our own grid layout control |
||||
|
||||
T.VerticalFactValueGrid { |
||||
id: _root |
||||
height: childrenRect.height |
||||
|
||||
property bool settingsUnlocked: false |
||||
|
||||
QGCPalette { id: qgcPal; colorGroupEnabled: enabled } |
||||
|
||||
RowLayout { |
||||
id: topLevelRowLayout |
||||
width: parent.width |
||||
|
||||
ColumnLayout { |
||||
Layout.fillWidth: true |
||||
|
||||
GridLayout { |
||||
id: valueGrid |
||||
Layout.preferredWidth: _root.width |
||||
rows: _root.rows.count * 2 |
||||
rowSpacing: 0 |
||||
|
||||
Repeater { |
||||
model: _root.rows |
||||
|
||||
Repeater { |
||||
id: labelRepeater |
||||
model: object |
||||
|
||||
property real _index: index |
||||
|
||||
InstrumentValueLabel { |
||||
Layout.row: labelRepeater._index * 2 |
||||
Layout.column: index |
||||
Layout.fillWidth: true |
||||
Layout.alignment: Qt.AlignHCenter |
||||
instrumentValueData: object |
||||
} |
||||
} |
||||
} |
||||
|
||||
Repeater { |
||||
model: _root.rows |
||||
|
||||
Repeater { |
||||
id: valueRepeater |
||||
model: object |
||||
|
||||
property real _index: index |
||||
|
||||
InstrumentValueValue { |
||||
Layout.row: valueRepeater._index * 2 + 1 |
||||
Layout.column: index |
||||
Layout.fillWidth: true |
||||
Layout.alignment: Qt.AlignHCenter |
||||
instrumentValueData: object |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
RowLayout { |
||||
id: rowButtons |
||||
height: ScreenTools.minTouchPixels / 2 |
||||
Layout.fillWidth: true |
||||
spacing: 1 |
||||
visible: settingsUnlocked |
||||
|
||||
QGCButton { |
||||
Layout.fillWidth: true |
||||
Layout.preferredHeight: parent.height |
||||
text: qsTr("+") |
||||
onClicked: appendRow() |
||||
} |
||||
|
||||
QGCButton { |
||||
Layout.fillWidth: true |
||||
Layout.preferredHeight: parent.height |
||||
text: qsTr("-") |
||||
enabled: _root.rows.count > 1 |
||||
onClicked: deleteLastRow() |
||||
} |
||||
} |
||||
} |
||||
|
||||
ColumnLayout { |
||||
Layout.fillHeight: true |
||||
Layout.bottomMargin: rowButtons.height |
||||
width: ScreenTools.minTouchPixels / 2 |
||||
spacing: 1 |
||||
visible: settingsUnlocked |
||||
|
||||
QGCButton { |
||||
Layout.fillHeight: true |
||||
Layout.preferredHeight: ScreenTools.minTouchPixels |
||||
Layout.preferredWidth: parent.width |
||||
text: qsTr("+") |
||||
onClicked: appendColumn() |
||||
} |
||||
|
||||
QGCButton { |
||||
Layout.fillHeight: true |
||||
Layout.preferredHeight: ScreenTools.minTouchPixels |
||||
Layout.preferredWidth: parent.width |
||||
text: qsTr("-") |
||||
enabled: _root.columnCount > 1 |
||||
onClicked: deleteLastColumn() |
||||
} |
||||
} |
||||
} |
||||
|
||||
QGCMouseArea { |
||||
x: valueGrid.x |
||||
y: valueGrid.y |
||||
width: valueGrid.width |
||||
height: valueGrid.height |
||||
visible: settingsUnlocked |
||||
onClicked: { |
||||
var item = valueGrid.childAt(mouse.x, mouse.y) |
||||
//console.log(item, item ? item.instrumentValueData : "null", item && item.parent ? item.parent.instrumentValueData : "null") |
||||
if (item && item.instrumentValueData !== undefined) { |
||||
mainWindow.showPopupDialog(valueEditDialog, { instrumentValueData: item.instrumentValueData }) |
||||
} |
||||
} |
||||
|
||||
/*Rectangle { |
||||
anchors.fill: parent |
||||
border.color: "green" |
||||
border.width: 1 |
||||
color: "transparent" |
||||
}*/ |
||||
} |
||||
|
||||
Component { |
||||
id: valueEditDialog |
||||
|
||||
InstrumentValueEditDialog { } |
||||
} |
||||
} |
||||
|