@@ -56,8 +56,8 @@ class HsfBuildCommand(sublime_plugin.WindowCommand):
56
56
57
57
def run (self , * args , ** kwargs ):
58
58
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 ):
61
61
save_all_files ()
62
62
63
63
settings = sublime .load_settings (PACKAGE_SETTINGS )
@@ -70,12 +70,18 @@ def run(self, *args, **kwargs):
70
70
if len (folders ) == 1 :
71
71
self .multipleFolders = False
72
72
self .project_folder = folders [0 ]
73
+ self .on_done_proj () # go on here
73
74
else :
74
75
self .multipleFolders = True
75
76
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
77
81
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' )
79
85
self .run_hsf ()
80
86
81
87
def pick_project_folder (self , folders ):
@@ -95,6 +101,7 @@ def select_project(self, select):
95
101
if select < 0 : # will be -1 if panel was cancelled
96
102
return
97
103
self .project_folder = folders [select ]
104
+ self .on_done_proj () # go on here
98
105
99
106
def find_gsm (self ):
100
107
self .files = []
@@ -108,14 +115,16 @@ def find_gsm(self):
108
115
sublime .error_message ("GDL build error: No GSM found." )
109
116
110
117
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 )
112
119
else :
113
120
self .file_to_convert = self .files [0 ]
121
+ self .on_done_file () # go on here
114
122
115
123
def select_gsm (self , select ):
116
124
if select < 0 :
117
125
return
118
126
self .file_to_convert = self .files [select ]
127
+ self .on_done_file () # go on here
119
128
120
129
# Sublime Text 3 requires a short timeout between quick panels
121
130
def show_quick_panel (self , options , done ):
@@ -133,8 +142,8 @@ class LibpartBuildCommand(sublime_plugin.WindowCommand):
133
142
134
143
def run (self , * args , ** kwargs ):
135
144
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 ):
138
147
save_all_files ()
139
148
140
149
settings = sublime .load_settings (PACKAGE_SETTINGS )
@@ -147,13 +156,18 @@ def run(self, *args, **kwargs):
147
156
if len (folders ) == 1 :
148
157
self .multipleFolders = False
149
158
self .project_folder = folders [0 ]
159
+ self .on_done_proj () # go on here
150
160
else :
151
161
self .multipleFolders = True
152
162
self .pick_project_folder (folders )
153
163
164
+ def on_done_proj (self ):
165
+ # own function because quick panel is async
154
166
self .find_hsf ()
167
+
168
+ def on_done_file (self ):
155
169
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' )
157
171
self .run_libpart ()
158
172
159
173
def pick_project_folder (self , folders ):
@@ -173,6 +187,7 @@ def select_project(self, select):
173
187
if select < 0 : # will be -1 if panel was cancelled
174
188
return
175
189
self .project_folder = folders [select ]
190
+ self .on_done_proj () # go on here
176
191
177
192
def find_hsf (self ):
178
193
# self.folders = []
@@ -189,12 +204,14 @@ def find_hsf(self):
189
204
self .show_quick_panel (self .folders , self .select_hsf )
190
205
else :
191
206
self .folder_to_convert = self .project_folder + "\\ " + self .folders [0 ]
207
+ self .on_done_file () # go on here
192
208
193
209
def select_hsf (self , select ):
194
210
folders = self .folders
195
211
if select < 0 : # will be -1 if panel was cancelled
196
212
return
197
213
self .folder_to_convert = self .project_folder + "\\ " + folders [select ]
214
+ self .on_done_file () # go on here
198
215
199
216
# Sublime Text 3 requires a short timeout between quick panels
200
217
def show_quick_panel (self , options , done ):
0 commit comments