diff --git a/geo_sam_provider.py b/geo_sam_provider.py index c4da402..bfadc70 100644 --- a/geo_sam_provider.py +++ b/geo_sam_provider.py @@ -2,7 +2,7 @@ from qgis.core import QgsProcessingProvider # from qgis.PyQt.QtGui import QIcon -from .ui.icons import QIcon_GeoSAMEncoder +from .ui.icons import QIcon_EncoderTool # from processing_provider.example_processing_algorithm import ExampleProcessingAlgorithm from .tools.sam_processing_algorithm import SamProcessingAlgorithm @@ -34,7 +34,7 @@ def icon(self): """Should return a QIcon which is used for your provider inside the Processing toolbox. """ - return QIcon_GeoSAMEncoder + return QIcon_EncoderTool def longName(self) -> str: return self.name() diff --git a/geo_sam_tool.py b/geo_sam_tool.py index 1bd7d95..2cfecf8 100644 --- a/geo_sam_tool.py +++ b/geo_sam_tool.py @@ -20,12 +20,12 @@ from PyQt5 import uic import processing -from .tools.widgetTool import Selector +from .tools.widgetTool import Selector, EncoderCopilot from .tools.geoTool import ImageCRSManager, LayerExtent from .tools.SAMTool import SAM_Model from .tools.canvasTool import RectangleMapTool, ClickTool, Canvas_Points, Canvas_Rectangle, SAM_PolygonFeature, Canvas_Extent from .ui import UI_Selector -from .ui.icons import QIcon_GeoSAMTool, QIcon_GeoSAMEncoder +from .ui.icons import QIcon_GeoSAMTool, QIcon_EncoderTool, QIcon_EncoderCopilot from .geo_sam_provider import GeoSamProvider @@ -63,10 +63,17 @@ def initGui(self): ) self.actionSamEncoder = QAction( - QIcon_GeoSAMEncoder, + QIcon_EncoderTool, "Geo SAM Encoding Tool", self.iface.mainWindow() ) + + self.actionSamEncoderCopilot = QAction( + QIcon_EncoderCopilot, + "Geo SAM Encoding Copilot", + self.iface.mainWindow() + ) + self.actionSamTool.setObjectName("mActionGeoSamTool") self.actionSamTool.setToolTip( "Geo SAM Segmentation Tool: Use it to label landforms") @@ -76,13 +83,25 @@ def initGui(self): self.actionSamEncoder.setToolTip( "Geo SAM Encoding Tool: Use it to encode/preprocess image before labeling") self.actionSamEncoder.triggered.connect(self.encodeImage) + + self.actionSamEncoderCopilot.setObjectName( + "mActionGeoSamEncoderCopilot") + self.actionSamEncoderCopilot.setToolTip( + "Geo SAM Encoding Copilot: Assist you in optimizing your Encoder Settings") + self.actionSamEncoderCopilot.triggered.connect( + self.create_widget_encoder_copilot) + # QgsMessageLog.logMessage( # f"Geo-SAM action name {self.action.objectName()}", 'Geo SAM', level=Qgis.Info) self.iface.addPluginToMenu('Geo SAM Tools', self.actionSamTool) self.iface.addPluginToMenu('Geo SAM Tools', self.actionSamEncoder) + self.iface.addPluginToMenu( + 'Geo SAM Tools', self.actionSamEncoderCopilot) + # self.iface.addToolBarIcon(self.action) self.toolbar.addAction(self.actionSamTool) self.toolbar.addAction(self.actionSamEncoder) + self.toolbar.addAction(self.actionSamEncoderCopilot) self.toolbar.setVisible(True) # Not working # start_time = time.time() @@ -98,9 +117,15 @@ def initGui(self): # break def create_widget_selector(self): + '''Create widget for selecting landform by prompts''' self.wdg_sel = Selector(self, self.iface, self.cwd) self.wdg_sel.open_widget() + def create_widget_encoder_copilot(self): + '''Create widget for co-piloting encoder settings''' + self.wdg_sel = EncoderCopilot(self, self.iface, self.cwd) + self.wdg_sel.open_widget() + def unload(self): '''Unload actions when plugin is closed''' if hasattr(self, "wdg_sel"): diff --git a/tools/sam_processing_algorithm.py b/tools/sam_processing_algorithm.py index f883a95..57cb481 100644 --- a/tools/sam_processing_algorithm.py +++ b/tools/sam_processing_algorithm.py @@ -49,7 +49,7 @@ from pyproj import CRS from pyproj.aoi import AreaOfInterest from pyproj.database import query_utm_crs_info -from ..ui.icons import QIcon_GeoSAMEncoder +from ..ui.icons import QIcon_EncoderTool from ..docs import encoder_help @@ -816,4 +816,4 @@ def shortHelpString(self): # return self.tr("Generate image features using SAM image encoder.") def icon(self): - return QIcon_GeoSAMEncoder + return QIcon_EncoderTool