@@ -56,8 +56,8 @@ class HsfBuildCommand(sublime_plugin.WindowCommand):
5656
5757 def run (self , * args , ** kwargs ):
5858 self .os = check_system ()
59- view = self .window .active_view ()
60- if view .settings ().get ("auto_save" , True ):
59+ self . view = self .window .active_view ()
60+ if self . view .settings ().get ("auto_save" , True ):
6161 save_all_files ()
6262
6363 settings = sublime .load_settings (PACKAGE_SETTINGS )
@@ -70,12 +70,18 @@ def run(self, *args, **kwargs):
7070 if len (folders ) == 1 :
7171 self .multipleFolders = False
7272 self .project_folder = folders [0 ]
73+ self .on_done_proj () # go on here
7374 else :
7475 self .multipleFolders = True
7576 self .pick_project_folder (folders )
76-
77+
78+ def on_done_proj (self ):
79+ # this needs to be in its own function, because
80+ # the sublime text quick panel works asynchronous
7781 self .find_gsm ()
78- self .cmdargs = get_project_data (view , 'to-hsf' )
82+
83+ def on_done_file (self ):
84+ self .cmdargs = get_project_data (self .view , 'to-hsf' )
7985 self .run_hsf ()
8086
8187 def pick_project_folder (self , folders ):
@@ -95,6 +101,7 @@ def select_project(self, select):
95101 if select < 0 : # will be -1 if panel was cancelled
96102 return
97103 self .project_folder = folders [select ]
104+ self .on_done_proj () # go on here
98105
99106 def find_gsm (self ):
100107 self .files = []
@@ -108,14 +115,16 @@ def find_gsm(self):
108115 sublime .error_message ("GDL build error: No GSM found." )
109116
110117 if len (self .files ) > 1 :
111- self .show_quick_panel (self .files , self .select_project )
118+ self .show_quick_panel (self .files , self .select_gsm )
112119 else :
113120 self .file_to_convert = self .files [0 ]
121+ self .on_done_file () # go on here
114122
115123 def select_gsm (self , select ):
116124 if select < 0 :
117125 return
118126 self .file_to_convert = self .files [select ]
127+ self .on_done_file () # go on here
119128
120129 # Sublime Text 3 requires a short timeout between quick panels
121130 def show_quick_panel (self , options , done ):
@@ -133,8 +142,8 @@ class LibpartBuildCommand(sublime_plugin.WindowCommand):
133142
134143 def run (self , * args , ** kwargs ):
135144 self .os = check_system ()
136- view = self .window .active_view ()
137- if view .settings ().get ("auto_save" , True ):
145+ self . view = self .window .active_view ()
146+ if self . view .settings ().get ("auto_save" , True ):
138147 save_all_files ()
139148
140149 settings = sublime .load_settings (PACKAGE_SETTINGS )
@@ -147,13 +156,18 @@ def run(self, *args, **kwargs):
147156 if len (folders ) == 1 :
148157 self .multipleFolders = False
149158 self .project_folder = folders [0 ]
159+ self .on_done_proj () # go on here
150160 else :
151161 self .multipleFolders = True
152162 self .pick_project_folder (folders )
153163
164+ def on_done_proj (self ):
165+ # own function because quick panel is async
154166 self .find_hsf ()
167+
168+ def on_done_file (self ):
155169 self .gsm_name = self .folder_to_convert + ".gsm"
156- self .cmdargs = get_project_data (view , 'to-gsm' )
170+ self .cmdargs = get_project_data (self . view , 'to-gsm' )
157171 self .run_libpart ()
158172
159173 def pick_project_folder (self , folders ):
@@ -173,6 +187,7 @@ def select_project(self, select):
173187 if select < 0 : # will be -1 if panel was cancelled
174188 return
175189 self .project_folder = folders [select ]
190+ self .on_done_proj () # go on here
176191
177192 def find_hsf (self ):
178193 # self.folders = []
@@ -189,12 +204,14 @@ def find_hsf(self):
189204 self .show_quick_panel (self .folders , self .select_hsf )
190205 else :
191206 self .folder_to_convert = self .project_folder + "\\ " + self .folders [0 ]
207+ self .on_done_file () # go on here
192208
193209 def select_hsf (self , select ):
194210 folders = self .folders
195211 if select < 0 : # will be -1 if panel was cancelled
196212 return
197213 self .folder_to_convert = self .project_folder + "\\ " + folders [select ]
214+ self .on_done_file () # go on here
198215
199216 # Sublime Text 3 requires a short timeout between quick panels
200217 def show_quick_panel (self , options , done ):
0 commit comments