Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3ec88260c1 | |||
| a57c60aa47 | |||
| 6786d74cad | |||
| ca0466e60f | |||
| 8dc60ed6eb | |||
| f3065ef003 | |||
| 16a0f18f52 | |||
| 3a40af91e2 | |||
| 98052f4a8e | |||
| a63bb50543 | |||
| 1937dbec6b | |||
| 8b1fd9643f | |||
| 737ad6cd5a | |||
| 71f926eb44 | |||
| 235537c9f3 | |||
| e034816bed | |||
| 5f1d48696f | |||
| d2ff748fe0 | |||
| fc89ef7deb | |||
| 45780aff25 | |||
| ce8447a5e8 |
+11
-4
@@ -1,14 +1,21 @@
|
|||||||
Class Application
|
Imports EgtPHOTOLib
|
||||||
|
|
||||||
' Application-level events, such as Startup, Exit, and DispatcherUnhandledException
|
Class Application
|
||||||
' can be handled in this file.
|
|
||||||
|
' Application-level events, such as Startup, Exit, and DispatcherUnhandledException
|
||||||
|
' can be handled in this file.
|
||||||
Protected Overrides Sub OnStartup(e As StartupEventArgs)
|
Protected Overrides Sub OnStartup(e As StartupEventArgs)
|
||||||
MyBase.OnStartup(e)
|
MyBase.OnStartup(e)
|
||||||
ShutdownMode = System.Windows.ShutdownMode.OnMainWindowClose
|
ShutdownMode = System.Windows.ShutdownMode.OnMainWindowClose
|
||||||
' Creo la View principale
|
' Creo la View principale
|
||||||
Me.MainWindow = New MainWindowV
|
Me.MainWindow = New MainWindowV
|
||||||
' Mostro la View principale
|
' Mostro la View principale
|
||||||
Me.MainWindow.Show()
|
If PhotoMap.ContinueApplication Then
|
||||||
|
Me.MainWindow.Show()
|
||||||
|
Else
|
||||||
|
End
|
||||||
|
End If
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -11,6 +11,10 @@
|
|||||||
'
|
'
|
||||||
'----------------------------------------------------------------------------
|
'----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Imports System.Data
|
||||||
|
Imports EgtPHOTOLib
|
||||||
|
Imports EgtWPFLib5
|
||||||
|
|
||||||
Module ConstIni
|
Module ConstIni
|
||||||
|
|
||||||
Public Const INI_FILE_NAME As String = "OmagPHOTO.ini"
|
Public Const INI_FILE_NAME As String = "OmagPHOTO.ini"
|
||||||
@@ -89,6 +93,13 @@ Module ConstIni
|
|||||||
Public Const K_MINLNCOLOR As String = "MinLnColor"
|
Public Const K_MINLNCOLOR As String = "MinLnColor"
|
||||||
Public Const K_MAJLNCOLOR As String = "MajLnColor"
|
Public Const K_MAJLNCOLOR As String = "MajLnColor"
|
||||||
|
|
||||||
|
Public Const S_AUTOCLICK As String = "AutoClick"
|
||||||
|
Public Const K_CLICKDIR As String = "ClickDir"
|
||||||
|
Public Const K_STATE As String = "State"
|
||||||
|
Public Const K_AUTOMATERIAL As String = "Material"
|
||||||
|
Public Const K_THICKNESS As String = "Thickness"
|
||||||
|
Public Const K_WAREHAOUSE As String = "WareHouse"
|
||||||
|
|
||||||
Public Const S_CAMERA As String = "Camera"
|
Public Const S_CAMERA As String = "Camera"
|
||||||
Public Const K_CAM_COUNT As String = "Count"
|
Public Const K_CAM_COUNT As String = "Count"
|
||||||
Public Const K_CAM_EXEPATH As String = "ExePath"
|
Public Const K_CAM_EXEPATH As String = "ExePath"
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Imports System.IO
|
|||||||
Imports EgtUILib
|
Imports EgtUILib
|
||||||
Imports EgtWPFLib5
|
Imports EgtWPFLib5
|
||||||
Imports EgtPHOTOLib
|
Imports EgtPHOTOLib
|
||||||
|
Imports System.Windows.Forms.Integration
|
||||||
|
|
||||||
Public Class MainWindowM
|
Public Class MainWindowM
|
||||||
|
|
||||||
@@ -14,6 +15,12 @@ Public Class MainWindowM
|
|||||||
Private m_TimerIsBusy As Boolean = False
|
Private m_TimerIsBusy As Boolean = False
|
||||||
Private m_RefreshTimer As New DispatcherTimer
|
Private m_RefreshTimer As New DispatcherTimer
|
||||||
|
|
||||||
|
' Per lettura modifica direttorio
|
||||||
|
Private fsWatch As FileSystemWatcher
|
||||||
|
Private m_RefreshNewFileClick As New DispatcherTimer
|
||||||
|
Private m_bNewFileClick As Boolean = False
|
||||||
|
Private m_sNewFileClickPath As String = String.Empty
|
||||||
|
|
||||||
Private m_sDataRoot As String = String.Empty
|
Private m_sDataRoot As String = String.Empty
|
||||||
Friend ReadOnly Property sDataRoot As String
|
Friend ReadOnly Property sDataRoot As String
|
||||||
Get
|
Get
|
||||||
@@ -199,11 +206,11 @@ Public Class MainWindowM
|
|||||||
Dim sKey As String = String.Empty
|
Dim sKey As String = String.Empty
|
||||||
EgtUILib.GetPrivateProfileString(S_LICENCE, K_KEY, "", sKey, sLicFile)
|
EgtUILib.GetPrivateProfileString(S_LICENCE, K_KEY, "", sKey, sLicFile)
|
||||||
EgtSetKey(sKey)
|
EgtSetKey(sKey)
|
||||||
Dim bNetHwKey As Boolean = ( GetMainPrivateProfileInt(S_GENERAL, K_NETKEY, 0) = 1)
|
Dim bNetHwKey As Boolean = (GetMainPrivateProfileInt(S_GENERAL, K_NETKEY, 0) = 1)
|
||||||
EgtSetNetHwKey( bNetHwKey)
|
EgtSetNetHwKey(bNetHwKey)
|
||||||
' Recupero livello e opzioni della chiave
|
' Recupero livello e opzioni della chiave
|
||||||
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2407, 1, m_nKeyLevel) And
|
Dim bKey As Boolean = EgtGetKeyLevel(9423, 2602, 1, m_nKeyLevel) And
|
||||||
EgtGetKeyOptions(9423, 2407, 1, m_nKeyOptions)
|
EgtGetKeyOptions(9423, 2602, 1, m_nKeyOptions)
|
||||||
' Verifico abilitazione prodotto
|
' Verifico abilitazione prodotto
|
||||||
Dim bProd As Boolean = GetKeyOption(KEY_OPT.PHOTO_BASE)
|
Dim bProd As Boolean = GetKeyOption(KEY_OPT.PHOTO_BASE)
|
||||||
' Inizializzazione generale di EgtInterface
|
' Inizializzazione generale di EgtInterface
|
||||||
@@ -278,9 +285,6 @@ Public Class MainWindowM
|
|||||||
MessageBox.Show(EgtMsg(MSG_OMAGPHOTO + 1) & EgtMsg(MSG_OMAGPHOTO + 2), EgtMsg(MSG_EGTMSGBOX + 15), MessageBoxButton.OK, MessageBoxImage.Error)
|
MessageBox.Show(EgtMsg(MSG_OMAGPHOTO + 1) & EgtMsg(MSG_OMAGPHOTO + 2), EgtMsg(MSG_EGTMSGBOX + 15), MessageBoxButton.OK, MessageBoxImage.Error)
|
||||||
End
|
End
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim sLastBlock As String = String.Empty
|
|
||||||
|
|
||||||
' Info su opzioni chiave
|
' Info su opzioni chiave
|
||||||
EgtOutLog("KeyOptions : " & bKey.ToString() & " " & m_nKeyOptions.ToString() & " " & bProd.ToString())
|
EgtOutLog("KeyOptions : " & bKey.ToString() & " " & m_nKeyOptions.ToString() & " " & bProd.ToString())
|
||||||
' Imposto parametri EgtPHOTOLib
|
' Imposto parametri EgtPHOTOLib
|
||||||
@@ -295,6 +299,7 @@ Public Class MainWindowM
|
|||||||
EgtPHOTOLib.MainData.SetZebraPrinterExe(m_ZebraUtilitiesExe)
|
EgtPHOTOLib.MainData.SetZebraPrinterExe(m_ZebraUtilitiesExe)
|
||||||
EgtPHOTOLib.MainData.SetPrinterVisibility(m_PrinterIsVisible)
|
EgtPHOTOLib.MainData.SetPrinterVisibility(m_PrinterIsVisible)
|
||||||
EgtPHOTOLib.MainData.SetCapsLock(m_bCapsLock)
|
EgtPHOTOLib.MainData.SetCapsLock(m_bCapsLock)
|
||||||
|
Dim sLastBlock As String = String.Empty
|
||||||
If GetMainPrivateProfileString(S_GENERAL, "LastBlock", "", sLastBlock) <> 0 Then EgtPHOTOLib.MainData.SetLastBlock(sLastBlock)
|
If GetMainPrivateProfileString(S_GENERAL, "LastBlock", "", sLastBlock) <> 0 Then EgtPHOTOLib.MainData.SetLastBlock(sLastBlock)
|
||||||
Dim sIdKey As String = String.Empty
|
Dim sIdKey As String = String.Empty
|
||||||
EgtGetKeyInfo(sIdKey)
|
EgtGetKeyInfo(sIdKey)
|
||||||
@@ -303,11 +308,88 @@ Public Class MainWindowM
|
|||||||
AddHandler m_RefreshTimer.Tick, AddressOf RefreshTimer_Tick
|
AddHandler m_RefreshTimer.Tick, AddressOf RefreshTimer_Tick
|
||||||
m_RefreshTimer.Interval = TimeSpan.FromMilliseconds(2000)
|
m_RefreshTimer.Interval = TimeSpan.FromMilliseconds(2000)
|
||||||
m_RefreshTimer.Start()
|
m_RefreshTimer.Start()
|
||||||
|
' sec onfigurato lancio il controllo di uno specifico direttorio per leggere quando scattare una nuova foto
|
||||||
|
Dim sClidkDir As String = String.Empty
|
||||||
|
Dim bEnableLineProduction As Boolean = GetMainPrivateProfileString(S_AUTOCLICK, K_CLICKDIR, "", sClidkDir) <> 0
|
||||||
|
If bEnableLineProduction Then
|
||||||
|
fsWatch = New FileSystemWatcher(sClidkDir) With {.EnableRaisingEvents = True}
|
||||||
|
'fsWatch.EnableRaisingEvents = True
|
||||||
|
AddHandler fsWatch.Created, AddressOf AutoClick
|
||||||
|
AddHandler fsWatch.Changed, AddressOf AutoClick
|
||||||
|
AddHandler fsWatch.Renamed, AddressOf AutoClick
|
||||||
|
m_bNewFileClick = False
|
||||||
|
AddHandler m_RefreshNewFileClick.Tick, AddressOf AutoClick_Cmd
|
||||||
|
m_RefreshNewFileClick.Interval = TimeSpan.FromMilliseconds(2000)
|
||||||
|
m_RefreshNewFileClick.Start()
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub AutoClick(ByVal sender As Object, ByVal e As FileSystemEventArgs)
|
||||||
|
EgtOutLog("File '" & e.FullPath & "' has been created: ready to Click")
|
||||||
|
m_sNewFileClickPath = e.FullPath
|
||||||
|
m_bNewFileClick = True
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub AutoClick_Cmd()
|
||||||
|
If Not m_bNewFileClick Then Return
|
||||||
|
' deseleziono la precedente lastra
|
||||||
|
If Not IsNothing(EgtPHOTOLib.PhotoMap.refProjectVM.SelSlab) Then
|
||||||
|
EgtPHOTOLib.PhotoMap.refProjectVM.SelSlab.IsSelected = 0
|
||||||
|
End If
|
||||||
|
' verifico se esite una lastra corrente in modifica, quindi chiedo se salvare
|
||||||
|
Map.refTopCommandBarVM.NewCmd(True)
|
||||||
|
' apro la pagina per inserire una nuova lastra, se esiste un oggetto di tipo lastra allora procedo
|
||||||
|
If Not IsNothing(EgtPHOTOLib.PhotoMap.refProjectVM.SelSlab) Then
|
||||||
|
' Autocompilazione dei campi con i dati dell'ultima lastra salvata
|
||||||
|
ReadLastInfoAutoClick(EgtPHOTOLib.PhotoMap.refProjectVM.SelSlab)
|
||||||
|
' scatto la foto
|
||||||
|
EgtPHOTOLib.PhotoMap.refOptionPanelVM.Photo(Nothing)
|
||||||
|
' notifico che è stata scattata una foto
|
||||||
|
Try
|
||||||
|
File.Delete(m_sNewFileClickPath)
|
||||||
|
EgtOutLog("File '" & m_sNewFileClickPath & "' has been deleted!")
|
||||||
|
m_bNewFileClick = False
|
||||||
|
Catch ex As Exception
|
||||||
|
EgtOutLog("File '" & m_sNewFileClickPath & "' can't be deleted! " & ex.ToString)
|
||||||
|
|
||||||
|
End Try
|
||||||
|
' se è stata scattata una foto provvedo a salvare l'inserimento
|
||||||
|
If Not m_bNewFileClick Then
|
||||||
|
' salvo i dati inseriti ( nel file ini e nel DB )
|
||||||
|
EgtPHOTOLib.PhotoMap.refOptionPanelVM.Save()
|
||||||
|
' ricarico la pagina
|
||||||
|
EgtPHOTOLib.PhotoMap.refProjectVM.SelProjectMode = ProjectSlabVM.ProjectModeOpt.DETAIL
|
||||||
|
EgtPHOTOLib.PhotoMap.refOptionPanelVM.Ok_IsEnabled = False
|
||||||
|
' stampo etichetta
|
||||||
|
EgtPHOTOLib.PhotoMap.refOptionPanelVM.PrintLabel()
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub ReadLastInfoAutoClick(CurrSlab As Slab)
|
||||||
|
Dim nIndState As Integer = 1
|
||||||
|
Dim sMaterial As String = ""
|
||||||
|
Dim dThick As Double = 0
|
||||||
|
Dim sWarehouse As String = ""
|
||||||
|
nIndState = GetMainPrivateProfileInt(S_AUTOCLICK, K_STATE, nIndState)
|
||||||
|
GetMainPrivateProfileString(S_AUTOCLICK, K_AUTOMATERIAL, "", sMaterial)
|
||||||
|
dThick = GetMainPrivateProfileDouble(S_AUTOCLICK, K_THICKNESS, 1)
|
||||||
|
GetMainPrivateProfileString(S_AUTOCLICK, K_WAREHAOUSE, "", sWarehouse)
|
||||||
|
CurrSlab.State = nIndState
|
||||||
|
For IndexMat As Integer = 0 To EgtPHOTOLib.PhotoMap.refProjectVM.MaterialList.Count - 1
|
||||||
|
If EgtPHOTOLib.PhotoMap.refProjectVM.MaterialList(IndexMat).Trim = sMaterial.Trim Then
|
||||||
|
CurrSlab.SetMaterial(EgtPHOTOLib.PhotoMap.refProjectVM.MaterialList(IndexMat))
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
CurrSlab.SetThickness(dThick)
|
||||||
|
CurrSlab.WarehousePosition = sWarehouse
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
' per la gestione di due OmagPHOTO che accedono allo stesso SQL
|
' per la gestione di due OmagPHOTO che accedono allo stesso SQL
|
||||||
Private Sub RefreshTimer_Tick()
|
Private Sub RefreshTimer_Tick()
|
||||||
If Not m_TimerIsBusy And PhotoMap.refProjectVM.SelProjectMode = ProjectSlabVM.ProjectModeOpt.LIST Then
|
If Not m_TimerIsBusy AndAlso Not IsNothing(PhotoMap.refProjectVM) AndAlso
|
||||||
|
PhotoMap.refProjectVM.SelProjectMode = ProjectSlabVM.ProjectModeOpt.LIST Then
|
||||||
m_TimerIsBusy = True
|
m_TimerIsBusy = True
|
||||||
m_RefreshTimer.Stop()
|
m_RefreshTimer.Stop()
|
||||||
EgtPHOTOLib.PhotoMap.refListPageVM.RefreshLisPage()
|
EgtPHOTOLib.PhotoMap.refListPageVM.RefreshLisPage()
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
xmlns:EgtPHOTOLib="clr-namespace:EgtPHOTOLib;assembly=EgtPHOTOLib"
|
xmlns:EgtPHOTOLib="clr-namespace:EgtPHOTOLib;assembly=EgtPHOTOLib"
|
||||||
DataContext="{StaticResource MainWindowVM}"
|
DataContext="{StaticResource MainWindowVM}"
|
||||||
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
|
Style="{DynamicResource {x:Type EgtWPFLib5:EgtCustomWindow}}"
|
||||||
|
TitleBarForeground="{StaticResource Omag_White}"
|
||||||
Title="{Binding Title}" Icon="/Resources/OmagPHOTO.ico"
|
Title="{Binding Title}" Icon="/Resources/OmagPHOTO.ico"
|
||||||
MinHeight="600" MinWidth="800"
|
MinHeight="600" MinWidth="800"
|
||||||
AboutBoxCommand="{Binding AboutBoxCommand}" WindowStyle="None" ResizeMode="NoResize"
|
AboutBoxCommand="{Binding AboutBoxCommand}" WindowStyle="None" ResizeMode="NoResize"
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ Imports System.Windows
|
|||||||
<Assembly: AssemblyDescription("OmagPHOTO 32 bit")>
|
<Assembly: AssemblyDescription("OmagPHOTO 32 bit")>
|
||||||
#End If
|
#End If
|
||||||
<Assembly: AssemblyCompany("Egalware s.r.l.")>
|
<Assembly: AssemblyCompany("Egalware s.r.l.")>
|
||||||
<Assembly: AssemblyProduct("OmagPHOTO")>
|
<Assembly: AssemblyProduct("OmagPHOTO")>
|
||||||
<Assembly: AssemblyCopyright("Copyright © 2017-2022 by Egalware s.r.l.")>
|
<Assembly: AssemblyCopyright("Copyright © 2017-2023 by Egalware s.r.l.")>
|
||||||
<Assembly: AssemblyTrademark("")>
|
<Assembly: AssemblyTrademark("")>
|
||||||
<Assembly: ComVisible(false)>
|
<Assembly: ComVisible(false)>
|
||||||
|
|
||||||
@@ -59,5 +59,5 @@ Imports System.Windows
|
|||||||
' by using the '*' as shown below:
|
' by using the '*' as shown below:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2.4.7.1")>
|
<Assembly: AssemblyVersion("2.6.2.1")>
|
||||||
<Assembly: AssemblyFileVersion("2.4.7.1")>
|
<Assembly: AssemblyFileVersion("2.6.2.1")>
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 604 B After Width: | Height: | Size: 3.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 703 B |
Binary file not shown.
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.4 KiB |
@@ -6,12 +6,14 @@
|
|||||||
|
|
||||||
<!--Barra superiore dei comandi-->
|
<!--Barra superiore dei comandi-->
|
||||||
<Button Command="{Binding NewCommand}"
|
<Button Command="{Binding NewCommand}"
|
||||||
ToolTip="{Binding NewToolTip}">
|
ToolTip="{Binding NewToolTip}"
|
||||||
|
Style="{StaticResource TopCmdBar_Button}">
|
||||||
<Image Source="/Resources/TopCommandBar/New.png" Stretch="Uniform"/>
|
<Image Source="/Resources/TopCommandBar/New.png" Stretch="Uniform"/>
|
||||||
</Button>
|
</Button>
|
||||||
<ToggleButton IsChecked="{Binding Search_IsChecked}"
|
<ToggleButton IsChecked="{Binding Search_IsChecked}"
|
||||||
IsEnabled="{Binding Search_IsEnabled}"
|
IsEnabled="{Binding Search_IsEnabled}"
|
||||||
ToolTip="{Binding SearchToolTip}">
|
ToolTip="{Binding SearchToolTip}"
|
||||||
|
Style="{StaticResource TopCmdBar_ToggleButton}">
|
||||||
<Image Source="/Resources/TopCommandBar/Search.png" Stretch="Uniform"/>
|
<Image Source="/Resources/TopCommandBar/Search.png" Stretch="Uniform"/>
|
||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
<!--<Button Command="{Binding OpenCommand}"
|
<!--<Button Command="{Binding OpenCommand}"
|
||||||
@@ -41,7 +43,8 @@
|
|||||||
</Button>-->
|
</Button>-->
|
||||||
<Button Command="{Binding OptionsCommand}"
|
<Button Command="{Binding OptionsCommand}"
|
||||||
ToolTip="{Binding OptionsToolTip}"
|
ToolTip="{Binding OptionsToolTip}"
|
||||||
IsEnabled="{Binding IsEnabled}">
|
IsEnabled="{Binding IsEnabled}"
|
||||||
|
Style="{StaticResource TopCmdBar_Button}">
|
||||||
<Image Source="/Resources/TopCommandBar/Options.png" Stretch="Uniform"/>
|
<Image Source="/Resources/TopCommandBar/Options.png" Stretch="Uniform"/>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
|
|||||||
@@ -156,6 +156,23 @@ Public Class TopCommandBarVM
|
|||||||
Friend Sub NewCmd(Optional bUseDefaults As Boolean = False)
|
Friend Sub NewCmd(Optional bUseDefaults As Boolean = False)
|
||||||
' passo alla libreria l'oggetto Camera che è stato inizializzato nel Omag-PHOTO
|
' passo alla libreria l'oggetto Camera che è stato inizializzato nel Omag-PHOTO
|
||||||
EgtPHOTOLib.MainData.SetCamera(Map.refMainWindowVM.m_Camera)
|
EgtPHOTOLib.MainData.SetCamera(Map.refMainWindowVM.m_Camera)
|
||||||
|
Dim bIsSaved As Boolean = False
|
||||||
|
If Not IsNothing(EgtPHOTOLib.PhotoMap.refProjectVM.SelSlab) Then
|
||||||
|
If EgtPHOTOLib.PhotoMap.refProjectVM.SelSlab.IsModified Then
|
||||||
|
' 91125: Salvare le modifiche correnti? - 92201: Avviso
|
||||||
|
If MessageBox.Show(EgtMsg(91125), EgtMsg(92201), MessageBoxButton.YesNo, MessageBoxImage.Asterisk) = MessageBoxResult.Yes Then
|
||||||
|
EgtPHOTOLib.PhotoMap.refOptionPanelVM.Save()
|
||||||
|
bIsSaved = True
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
bIsSaved = True
|
||||||
|
End If
|
||||||
|
If Not bIsSaved Then
|
||||||
|
EgtPHOTOLib.PhotoMap.refOptionPanelVM.Cancel(Nothing)
|
||||||
|
Else
|
||||||
|
EgtPHOTOLib.PhotoMap.refListPageVM.RefreshLisPage()
|
||||||
|
End If
|
||||||
|
End If
|
||||||
Map.refProjectVM.SelProjectMode = ProjectSlabVM.ProjectModeOpt.NEWSLAB
|
Map.refProjectVM.SelProjectMode = ProjectSlabVM.ProjectModeOpt.NEWSLAB
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|||||||
+673
-427
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user