Added the ability to update NW versions and fixed compatibility with 0.10.X.
This commit is contained in:
parent
db7f281dd0
commit
4539f53c37
2 changed files with 81 additions and 20 deletions
|
|
@ -1,15 +1,21 @@
|
||||||
|
0.10.5
|
||||||
|
0.10.4
|
||||||
|
0.10.3
|
||||||
|
0.10.2
|
||||||
|
0.10.1
|
||||||
|
0.10.0-rc2
|
||||||
|
0.10.0-rc1
|
||||||
|
0.10.0
|
||||||
0.9.2
|
0.9.2
|
||||||
0.9.1
|
0.9.1
|
||||||
0.9.0
|
0.9.0
|
||||||
|
0.8.6
|
||||||
0.8.5
|
0.8.5
|
||||||
0.8.4
|
0.8.4
|
||||||
0.8.3
|
0.8.3
|
||||||
0.8.2
|
0.8.2
|
||||||
0.8.1
|
0.8.1
|
||||||
0.8.0
|
0.8.0
|
||||||
0.7.5
|
|
||||||
0.7.4
|
|
||||||
0.7.3
|
|
||||||
0.7.2
|
0.7.2
|
||||||
0.7.1
|
0.7.1
|
||||||
0.7.0
|
0.7.0
|
||||||
|
|
@ -17,12 +23,3 @@
|
||||||
0.6.2
|
0.6.2
|
||||||
0.6.1
|
0.6.1
|
||||||
0.6.0
|
0.6.0
|
||||||
0.5.1
|
|
||||||
0.5.0
|
|
||||||
0.4.2
|
|
||||||
0.4.1
|
|
||||||
0.3.7
|
|
||||||
0.3.6
|
|
||||||
0.3.5
|
|
||||||
0.3.4
|
|
||||||
0.3.3
|
|
||||||
|
|
|
||||||
80
main.py
80
main.py
|
|
@ -1,10 +1,16 @@
|
||||||
from utils import zip_files, join_files, log, get_temp_dir
|
from utils import zip_files, join_files, log, get_temp_dir
|
||||||
|
|
||||||
|
import urllib2, re
|
||||||
import sys, os, glob, json, re, shutil, stat, tarfile
|
import sys, os, glob, json, re, shutil, stat, tarfile
|
||||||
import zipfile, traceback, platform, filecmp
|
import zipfile, traceback, platform, filecmp
|
||||||
|
|
||||||
from PySide import QtGui, QtCore
|
from PySide import QtGui, QtCore
|
||||||
from PySide.QtGui import QApplication
|
from PySide.QtGui import QApplication
|
||||||
from PySide.QtNetwork import QHttp
|
from PySide.QtNetwork import QHttp
|
||||||
from PySide.QtCore import QUrl, QFileInfo, QFile, QIODevice
|
from PySide.QtCore import QUrl, QFileInfo, QFile, QIODevice
|
||||||
|
|
||||||
|
from distutils.version import LooseVersion
|
||||||
|
|
||||||
from zipfile import ZipFile
|
from zipfile import ZipFile
|
||||||
from tarfile import TarFile
|
from tarfile import TarFile
|
||||||
|
|
||||||
|
|
@ -48,6 +54,8 @@ class Setting(object):
|
||||||
self.file_types = file_types
|
self.file_types = file_types
|
||||||
|
|
||||||
self.default_value = kwargs.pop('default_value', None)
|
self.default_value = kwargs.pop('default_value', None)
|
||||||
|
self.button = kwargs.pop('button', None)
|
||||||
|
self.button_callback = kwargs.pop('button_callback', None)
|
||||||
|
|
||||||
self.set_extra_attributes_from_keyword_args(kwargs)
|
self.set_extra_attributes_from_keyword_args(kwargs)
|
||||||
|
|
||||||
|
|
@ -144,33 +152,44 @@ class MainWindow(QtGui.QWidget):
|
||||||
|
|
||||||
export_settings = {'windows': Setting('windows', default_value=False, type='check',
|
export_settings = {'windows': Setting('windows', default_value=False, type='check',
|
||||||
url=base_url+'node-webkit-v{}-win-ia32.zip',
|
url=base_url+'node-webkit-v{}-win-ia32.zip',
|
||||||
extract_files=['nw.exe', 'nw.pak', 'icudt.dll', 'libEGL.dll', 'libGLESv2.dll'],
|
extract_files=['nw.exe', 'nw.pak', 'icudtl.dat', 'libEGL.dll', 'libGLESv2.dll'],
|
||||||
dest_files=['nw.exe', 'nw.pak', 'icudt.dll', 'libEGL.dll', 'libGLESv2.dll']),
|
dest_files=['nw.exe', 'nw.pak', 'icudtl.dat', 'libEGL.dll', 'libGLESv2.dll']),
|
||||||
'mac': Setting('mac', default_value=False, type='check',
|
'mac': Setting('mac', default_value=False, type='check',
|
||||||
url=base_url+'node-webkit-v{}-osx-ia32.zip',
|
url=base_url+'node-webkit-v{}-osx-ia32.zip',
|
||||||
extract_file='node-webkit.app/Contents/Frameworks/node-webkit Framework.framework/node-webkit Framework',
|
extract_file='node-webkit.app/Contents/Frameworks/node-webkit Framework.framework/node-webkit Framework',
|
||||||
extract_files=['node-webkit.app/Contents/Frameworks/node-webkit Framework.framework/node-webkit Framework',
|
extract_files=['node-webkit.app/Contents/Frameworks/node-webkit Framework.framework/node-webkit Framework',
|
||||||
'node-webkit.app/Contents/Frameworks/node-webkit Framework.framework/Resources/nw.pak'],
|
'node-webkit.app/Contents/Frameworks/node-webkit Framework.framework/Resources/nw.pak',
|
||||||
|
'node-webkit.app/Contents/Frameworks/node-webkit Framework.framework/Resources/icudtl.dat'],
|
||||||
dest_files=[os.path.join('node-webkit.app','Contents',
|
dest_files=[os.path.join('node-webkit.app','Contents',
|
||||||
'Frameworks','node-webkit Framework.framework',
|
'Frameworks','node-webkit Framework.framework',
|
||||||
'node-webkit Framework'),
|
'node-webkit Framework'),
|
||||||
os.path.join('node-webkit.app','Contents',
|
os.path.join('node-webkit.app','Contents',
|
||||||
'Frameworks','node-webkit Framework.framework',
|
'Frameworks','node-webkit Framework.framework',
|
||||||
'Resources', 'nw.pak')]),
|
'Resources', 'nw.pak'),
|
||||||
|
os.path.join('node-webkit.app','Contents',
|
||||||
|
'Frameworks','node-webkit Framework.framework',
|
||||||
|
'Resources', 'icudtl.dat')]
|
||||||
|
),
|
||||||
'linux-x64': Setting('linux-x64', default_value=False, type='check',
|
'linux-x64': Setting('linux-x64', default_value=False, type='check',
|
||||||
url=base_url+'node-webkit-v{}-linux-x64.tar.gz',
|
url=base_url+'node-webkit-v{}-linux-x64.tar.gz',
|
||||||
extract_file='node-webkit-v{}-linux-x64/nw',
|
extract_file='node-webkit-v{}-linux-x64/nw',
|
||||||
extract_files=['node-webkit-v{}-linux-x64/nw',
|
extract_files=['node-webkit-v{}-linux-x64/nw',
|
||||||
'node-webkit-v{}-linux-x64/nw.pak'],
|
'node-webkit-v{}-linux-x64/nw.pak',
|
||||||
dest_files=['nw', 'nw.pak']),
|
'node-webkit-v{}-linux-x64/icudtl.dat'],
|
||||||
|
dest_files=['nw', 'nw.pak', 'icudtl.dat']),
|
||||||
'linux-x32': Setting('linux-x32', default_value=False, type='check',
|
'linux-x32': Setting('linux-x32', default_value=False, type='check',
|
||||||
url=base_url+'node-webkit-v{}-linux-ia32.tar.gz',
|
url=base_url+'node-webkit-v{}-linux-ia32.tar.gz',
|
||||||
extract_file='node-webkit-v{}-linux-ia32/nw',
|
extract_file='node-webkit-v{}-linux-ia32/nw',
|
||||||
extract_files=['node-webkit-v{}-linux-ia32/nw',
|
extract_files=['node-webkit-v{}-linux-ia32/nw',
|
||||||
'node-webkit-v{}-linux-ia32/nw.pak'],
|
'node-webkit-v{}-linux-ia32/nw.pak',
|
||||||
|
'node-webkit-v{}-linux-ia32/icudtl.dat'],
|
||||||
dest_files=['nw', 'nw.pak'])}
|
dest_files=['nw', 'nw.pak'])}
|
||||||
|
|
||||||
download_settings = {'nw_version':Setting('nw_version', 'Node-webkit version', default_value='0.9.2', values=[], type='list'),
|
def update_nw_versions(self, button):
|
||||||
|
self.getVersions()
|
||||||
|
|
||||||
|
|
||||||
|
download_settings = {'nw_version':Setting('nw_version', 'Node-webkit version', default_value='0.9.2', values=[], type='list', button='Update NW Versions', button_callback=update_nw_versions),
|
||||||
'force_download': Setting('force_download', default_value=False, type='check')}
|
'force_download': Setting('force_download', default_value=False, type='check')}
|
||||||
|
|
||||||
_setting_groups = [app_settings, webkit_settings, window_settings, export_settings, download_settings]
|
_setting_groups = [app_settings, webkit_settings, window_settings, export_settings, download_settings]
|
||||||
|
|
@ -206,6 +225,7 @@ class MainWindow(QtGui.QWidget):
|
||||||
self.option_settings_enabled(False)
|
self.option_settings_enabled(False)
|
||||||
|
|
||||||
self.setWindowTitle("Web2Executable")
|
self.setWindowTitle("Web2Executable")
|
||||||
|
self.update_nw_versions(None)
|
||||||
|
|
||||||
def setup_nw_versions(self):
|
def setup_nw_versions(self):
|
||||||
nw_version = self.getSetting('nw_version')
|
nw_version = self.getSetting('nw_version')
|
||||||
|
|
@ -447,6 +467,44 @@ class MainWindow(QtGui.QWidget):
|
||||||
self.thread.finished.connect(callback)
|
self.thread.finished.connect(callback)
|
||||||
self.thread.start()
|
self.thread.start()
|
||||||
|
|
||||||
|
def getVersionsInBackground(self):
|
||||||
|
self.ex_button.setEnabled(False)
|
||||||
|
self.runInBackground('getVersions', self.doneGettingVersions)
|
||||||
|
|
||||||
|
def getVersions(self):
|
||||||
|
response = urllib2.urlopen('https://raw.githubusercontent.com/rogerwang/node-webkit/master/CHANGELOG.md')
|
||||||
|
html = response.read()
|
||||||
|
|
||||||
|
nw_version = self.getSetting('nw_version')
|
||||||
|
|
||||||
|
old_versions = set(nw_version.values)
|
||||||
|
new_versions = set(re.findall('(\S+) / \S+', html))
|
||||||
|
|
||||||
|
versions = sorted(list(old_versions.union(new_versions)), key=LooseVersion, reverse=True)
|
||||||
|
nw_version.values = versions
|
||||||
|
combo = self.findChildByName(nw_version.name)
|
||||||
|
|
||||||
|
combo.clear()
|
||||||
|
combo.addItems(nw_version.values)
|
||||||
|
|
||||||
|
try:
|
||||||
|
f = open(os.path.join(CWD, 'files','nw-versions.txt'), 'w')
|
||||||
|
for v in nw_version.values:
|
||||||
|
f.write(v+os.linesep)
|
||||||
|
except IOError as e:
|
||||||
|
error = ''.join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))
|
||||||
|
self.show_error(error)
|
||||||
|
self.enable_ui_after_error()
|
||||||
|
finally:
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
|
||||||
|
def doneGettingVersions(self):
|
||||||
|
self.ex_button.setEnabled(self.requiredSettingsFilled())
|
||||||
|
self.progress_text = 'Done retrieving versions.'
|
||||||
|
|
||||||
|
self.enableUI()
|
||||||
|
|
||||||
def makeOutputFilesInBackground(self):
|
def makeOutputFilesInBackground(self):
|
||||||
self.ex_button.setEnabled(False)
|
self.ex_button.setEnabled(False)
|
||||||
self.runInBackground('makeOutputDirs', self.doneMakingFiles)
|
self.runInBackground('makeOutputDirs', self.doneMakingFiles)
|
||||||
|
|
@ -829,6 +887,10 @@ class MainWindow(QtGui.QWidget):
|
||||||
|
|
||||||
setting = self.getSetting(name)
|
setting = self.getSetting(name)
|
||||||
|
|
||||||
|
button = None
|
||||||
|
if setting.button:
|
||||||
|
button = QtGui.QPushButton(setting.button)
|
||||||
|
button.clicked.connect(lambda: setting.button_callback(self, button))
|
||||||
combo = QtGui.QComboBox()
|
combo = QtGui.QComboBox()
|
||||||
|
|
||||||
combo.setObjectName(setting.name)
|
combo.setObjectName(setting.name)
|
||||||
|
|
@ -844,6 +906,8 @@ class MainWindow(QtGui.QWidget):
|
||||||
combo.setCurrentIndex(default_index)
|
combo.setCurrentIndex(default_index)
|
||||||
|
|
||||||
hlayout.addWidget(combo)
|
hlayout.addWidget(combo)
|
||||||
|
if button:
|
||||||
|
hlayout.addWidget(button)
|
||||||
|
|
||||||
return hlayout
|
return hlayout
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue