def _setup_page_welcome(self): welcome = gtk.Label() welcome.set_markup(_('<span weight="bold">Welcome to Knoppix Remasterscript!!!</span>\nThis assistant will guide you through the steps of building your own Remaster.')) welcome.set_alignment(0, 0.5) self.source = gtk.FileChooserButton(gtk.FileChooserDialog(_('Source'), parent=self.assistant, action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER, buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK))) self.source.set_filename(os.curdir) self._source_set = False self.source.connect('current-folder-changed', self._source_changed) table = gtk.Table(1, 2) label = gtk.Label(_('Source:')) label.set_alignment(1, 0.5) table.attach(label, 0, 1, 0, 1, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.source, 1, 2, 0, 1, ypadding=2) box = gtk.VBox() box.pack_start(welcome, False, False, 5) box.pack_start(table, False, False, 5) self.welcome = gtk.Alignment(1, 1, 1, 1) self.welcome.add(box) self.welcome.set_padding(5, 5, 5, 5) self.assistant.append_page(self.welcome) self.assistant.set_page_title(self.welcome, _('Welcome')) self.assistant.set_page_type(self.welcome, gtk.ASSISTANT_PAGE_INTRO)
def _error(self, name, progress): self._pulse_stop() self.progress.set_fraction(0) self.status.set_text(_('Error...')) error(_('Error'), _('Error occurred during: "%s"') % (self.steps.get(name, name)), self.parent) self.event('error').emit()
def response(dialog, response_id): if response_id == gtk.RESPONSE_OK: label, kernel, append = dialog.label.get_text(), dialog.kernel.get_text(), dialog.append.get_text() if label in self.isolinux: error(_('Error'), _('Entry already exists.'), dialog) else: self.defaults.append(label) self.default.append_text(label) self.entries.append((label, kernel, append)) self.isolinux[label] = {'kernel': kernel, 'append': append} add.destroy()
def _label_edited(self, renderer, number, new): if self.entries[number][0] == self.default.get_active_text(): error(_('Error'), _('You could not edit the label of the current default entry.'), self.parent) elif self.entries[number][0] == 'default': error(_('Error'), _('You cloud not edit the label of the default entry.'), self.parent) else: position = self.defaults.index(self.entries[number][0]) self.defaults[position] = new self.default.remove_text(position) self.default.insert_text(position, new) self.entries[number][0] = new
def _remove(self, button): iter = self.view.get_selection().get_selected()[1] if iter: number = self.entries.get_path(iter) if self.entries[number][0] == self.default.get_active_text(): error(_('Error'), _('You could not remove the the current default entry.'), self.parent) elif self.entries[number][0] == 'default': error(_('Error'), _('You cloud not remove the default entry.'), self.parent) else: self.default.remove_text(self.defaults.index(self.entries[number][0])) self.defaults.remove(self.entries[number][0]) del self.isolinux[self.entries[number][0]] self.entries.remove(iter)
def _summary(self): name, squashfs, base = get_version(os.path.join(self.source.get_filename(), 'master')) if name == 'Unknown': name = _('Unknown') self.name.set_text(name) if base == 'Unknown': base = _('Unknown') self.base_version.set_text(base) if squashfs is None: self.compression.set_text(_('Cloop')) elif squashfs is True: self.compression.set_text(_('SquashFS')) else: self.compression.set_text(_('Cloop'))
def _setup_page_finished(self): finished = gtk.Label() finished.set_markup(_('<span weight="bold">Remaster successful built!!!</span>\nFinished. A new Remaster was built.')) finished.set_alignment(0, 0.5) box = gtk.VBox() box.pack_start(finished, False, False, 5) self.finished= gtk.Alignment(1, 1, 1, 1) self.finished.add(box) self.finished.set_padding(5, 5, 5, 5) self.assistant.append_page(self.finished) self.assistant.set_page_title(self.finished, _('Finished')) self.assistant.set_page_type(self.finished, gtk.ASSISTANT_PAGE_SUMMARY)
def _summary(self): name, squashfs, base = get_version( os.path.join(self.source.get_filename(), 'master')) if name == 'Unknown': name = _('Unknown') self.name.set_text(name) if base == 'Unknown': base = _('Unknown') self.base_version.set_text(base) if squashfs is None: self.compression.set_text(_('Cloop')) elif squashfs is True: self.compression.set_text(_('SquashFS')) else: self.compression.set_text(_('Cloop'))
def _setup_page_create(self): create = gtk.Label() create.set_markup(_('<span weight="bold">Creating a new Remaster!!!</span>\nThis script is now creating a new remaster.')) create.set_alignment(0, 0.5) box = gtk.VBox() box.set_spacing(5) box.pack_start(create, False, False) box.pack_start(self.script) self.create = gtk.Alignment(1, 1, 1, 1) self.create.add(box) self.create.set_padding(5, 5, 5, 5) self.assistant.append_page(self.create) self.assistant.set_page_title(self.create, _('Create')) self.assistant.set_page_type(self.create, gtk.ASSISTANT_PAGE_PROGRESS)
def _setup_page_finished(self): finished = gtk.Label() finished.set_markup( _('<span weight="bold">Remaster successful built!!!</span>\nFinished. A new Remaster was built.' )) finished.set_alignment(0, 0.5) box = gtk.VBox() box.pack_start(finished, False, False, 5) self.finished = gtk.Alignment(1, 1, 1, 1) self.finished.add(box) self.finished.set_padding(5, 5, 5, 5) self.assistant.append_page(self.finished) self.assistant.set_page_title(self.finished, _('Finished')) self.assistant.set_page_type(self.finished, gtk.ASSISTANT_PAGE_SUMMARY)
def _setup_page_build(self): build = gtk.Label() build.set_markup(_('<span weight="bold">Building a new Remaster!!!</span>\nThis script is now building a new Remaster.')) build.set_alignment(0, 0.5) box = gtk.VBox() box.set_spacing(5) box.pack_start(build, False, False) box.pack_start(self.script, False, False) self.build = gtk.Alignment(1, 1, 1, 1) self.build.add(box) self.build.set_padding(5, 5, 5, 5) self.assistant.append_page(self.build) self.assistant.set_page_title(self.build, _('Build')) self.assistant.set_page_type(self.build, gtk.ASSISTANT_PAGE_PROGRESS)
def _setup_page_build(self): build = gtk.Label() build.set_markup( _('<span weight="bold">Building a new Remaster!!!</span>\nThis script is now building a new Remaster.' )) build.set_alignment(0, 0.5) box = gtk.VBox() box.set_spacing(5) box.pack_start(build, False, False) box.pack_start(self.script, False, False) self.build = gtk.Alignment(1, 1, 1, 1) self.build.add(box) self.build.set_padding(5, 5, 5, 5) self.assistant.append_page(self.build) self.assistant.set_page_title(self.build, _('Build')) self.assistant.set_page_type(self.build, gtk.ASSISTANT_PAGE_PROGRESS)
def _setup_page_welcome(self): welcome = gtk.Label() welcome.set_markup( _('<span weight="bold">Welcome to Knoppix Remasterscript!!!</span>\nThis assistant will guide you through the steps of building your own Remaster.' )) welcome.set_alignment(0, 0.5) self.source = gtk.FileChooserButton( gtk.FileChooserDialog(_('Source'), parent=self.assistant, action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER, buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK))) self.source.set_filename(os.curdir) self._source_set = False self.source.connect('current-folder-changed', self._source_changed) table = gtk.Table(1, 2) label = gtk.Label(_('Source:')) label.set_alignment(1, 0.5) table.attach(label, 0, 1, 0, 1, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.source, 1, 2, 0, 1, ypadding=2) box = gtk.VBox() box.pack_start(welcome, False, False, 5) box.pack_start(table, False, False, 5) self.welcome = gtk.Alignment(1, 1, 1, 1) self.welcome.add(box) self.welcome.set_padding(5, 5, 5, 5) self.assistant.append_page(self.welcome) self.assistant.set_page_title(self.welcome, _('Welcome')) self.assistant.set_page_type(self.welcome, gtk.ASSISTANT_PAGE_INTRO)
def __init__(self, parent=None): gtk.Dialog.__init__(self, _('Add'), parent, buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK)) self.set_response_sensitive(gtk.RESPONSE_OK, False) self.label = gtk.Entry() self.label.connect('changed', self._label_changed) self.kernel = gtk.Entry() self.append = gtk.Entry() table = gtk.Table(3, 2) table.attach(label(_('Label:'), (1, 0.5)), 0, 1, 0, 1, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.label, 1, 2, 0, 1, ypadding=2) table.attach(label(_('Kernel:'), (1, 0.5)), 0, 1, 1, 2, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.kernel, 1, 2, 1, 2, ypadding=2) table.attach(label(_('Append:'), (1, 0.5)), 0, 1, 2, 3, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.append, 1, 2, 2, 3, ypadding=2) table.show_all() self.get_content_area().pack_start(table)
def _setup_page_summary(self): summary = gtk.Label() summary.set_markup(_('<span weight="bold">Summary!!!</span>\nPlease check if everything is correct.')) summary.set_alignment(0, 0.5) self.name = gtk.Label() self.name.set_alignment(0, 0.5) self.base_version = gtk.Label() self.base_version.set_alignment(0, 0.5) self.compression = gtk.Label() self.compression.set_alignment(0, 0.5) table = gtk.Table(3, 2) label = gtk.Label(_('Name:')) label.set_alignment(1, 0.5) table.attach(label, 0, 1, 0, 1, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.name, 1, 2, 0, 1, ypadding=2) label = gtk.Label(_('Base Version:')) label.set_alignment(1, 0.5) table.attach(label, 0, 1, 1, 2, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.base_version, 1, 2, 1, 2, ypadding=2) label = gtk.Label(_('Compression:')) label.set_alignment(1, 0.5) table.attach(label, 0, 1, 2, 3, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.compression, 1, 2, 2, 3, ypadding=2) box = gtk.VBox() box.pack_start(summary, False, False, 5) box.pack_start(table, False, False, 5) self.summary = gtk.Alignment(1, 1, 1, 1) self.summary.add(box) self.summary.set_padding(5, 5, 5, 5) self.assistant.append_page(self.summary) self.assistant.set_page_title(self.summary, _('Summary')) self.assistant.set_page_complete(self.summary, True) self.assistant.set_page_type(self.summary, gtk.ASSISTANT_PAGE_CONFIRM)
def __init__(self): self.assistant = gtk.Assistant() self.assistant.set_title(_('Knoppix Remasterscript')) self.assistant.set_position(gtk.WIN_POS_CENTER_ALWAYS) self.assistant.set_icon_from_file(os.path.join(os.path.dirname(__file__), 'resources', 'icon.png')) self.assistant.connect('prepare', self._prepare) self.script = Script(build, _steps) self.script.event('success').connect(self._success) self._setup_page_welcome() self._setup_page_summary() self._setup_page_build() self._setup_page_finished()
def __init__(self): self.assistant = gtk.Assistant() self.assistant.set_title(_('Knoppix Remasterscript')) self.assistant.set_position(gtk.WIN_POS_CENTER_ALWAYS) self.assistant.set_icon_from_file( os.path.join(os.path.dirname(__file__), 'resources', 'icon.png')) self.assistant.connect('prepare', self._prepare) self.script = Script(build, _steps) self.script.event('success').connect(self._success) self._setup_page_welcome() self._setup_page_summary() self._setup_page_build() self._setup_page_finished()
def _summary(self): name, squashfs, base = get_version(self.source.get_filename()) if name == 'Unknown': name = _('Unknown') self.base_version.set_text(name) if squashfs is None: self.base_compression.set_active(0) self.base_compression.set_sensitive(True) elif squashfs is True: self.base_compression.set_active(1) else: self.base_compression.set_active(0) _yes_no = {True: _('Yes'), False: _('No')} self.options.set_text('%s %s | %s %s | %s %s' % (_('Filesystem:'), _yes_no[self.filesystem.get_active()], _('Minirt:'), _yes_no[self.minirt.get_active()], _('SquashFS:'), _yes_no[self.squashfs.get_active()]))
def _setup_page_settings(self): self.name = gtk.Entry() self.name.set_text(_('My Remaster')) self.filesystem = gtk.CheckButton() self.filesystem.set_active(True) self.minirt = gtk.CheckButton() self.minirt.set_active(True) self.squashfs = gtk.CheckButton() self.squashfs.connect('toggled', self._squashfs_changed) self.squashfs.set_sensitive(False) table = gtk.Table(4, 2) label = gtk.Label(_('Name:')) label.set_alignment(1, 0.5) table.attach(label, 0, 1, 0, 1, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.name, 1, 2, 0, 1, ypadding=2) label = gtk.Label(_('Extract Filesystem:')) label.set_alignment(1, 0.5) table.attach(label, 0, 1, 1, 2, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.filesystem, 1, 2, 1, 2, ypadding=2) label = gtk.Label(_('Extract Minirt:')) label.set_alignment(1, 0.5) table.attach(label, 0, 1, 2, 3, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.minirt, 1, 2, 2, 3, ypadding=2) label = gtk.Label(_('SquashFS:')) label.set_alignment(1, 0.5) table.attach(label, 0, 1, 3, 4, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.squashfs, 1, 2, 3, 4, ypadding=2) self.settings = gtk.Alignment(1, 1, 1, 1) self.settings.add(table) self.settings.set_padding(5, 5, 5, 5) self.assistant.append_page(self.settings) self.assistant.set_page_title(self.settings, _('Settings')) self.assistant.set_page_complete(self.settings, True)
def _setup_page_summary(self): summary = gtk.Label() summary.set_markup( _('<span weight="bold">Summary!!!</span>\nPlease check if everything is correct.' )) summary.set_alignment(0, 0.5) self.name = gtk.Label() self.name.set_alignment(0, 0.5) self.base_version = gtk.Label() self.base_version.set_alignment(0, 0.5) self.compression = gtk.Label() self.compression.set_alignment(0, 0.5) table = gtk.Table(3, 2) label = gtk.Label(_('Name:')) label.set_alignment(1, 0.5) table.attach(label, 0, 1, 0, 1, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.name, 1, 2, 0, 1, ypadding=2) label = gtk.Label(_('Base Version:')) label.set_alignment(1, 0.5) table.attach(label, 0, 1, 1, 2, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.base_version, 1, 2, 1, 2, ypadding=2) label = gtk.Label(_('Compression:')) label.set_alignment(1, 0.5) table.attach(label, 0, 1, 2, 3, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.compression, 1, 2, 2, 3, ypadding=2) box = gtk.VBox() box.pack_start(summary, False, False, 5) box.pack_start(table, False, False, 5) self.summary = gtk.Alignment(1, 1, 1, 1) self.summary.add(box) self.summary.set_padding(5, 5, 5, 5) self.assistant.append_page(self.summary) self.assistant.set_page_title(self.summary, _('Summary')) self.assistant.set_page_complete(self.summary, True) self.assistant.set_page_type(self.summary, gtk.ASSISTANT_PAGE_CONFIRM)
# along with this program. If not, see <http://www.gnu.org/licenses/>. from __future__ import print_function import os import os.path import gtk from knxremaster.create import create from knxremaster.interface.misc import translate as _ from knxremaster.interface.script import Script from knxremaster.toolkit.asynchron import gobject_exec from knxremaster.versions import get_version _steps = {'create_directories': _('creating target directory structure...'), 'copy_master': _('copying cd/dvd...'), 'write_settings': _('writing settings...'), 'filesystem_decompress': _('decompressing filesystem...'), 'filesystem_mount': _('mounting decompressed filesystem...'), 'filesystem_copy': _('copying filesystem...'), 'filesystem_umount': _('umounting decompressed filesystem'), 'minirt_decompress': _('decompressing minirt...'), 'minirt_unpack': _('unpacking decompressed minirt...'), 'cleanup': _('cleaning up...')} class Create(): def __init__(self): self.assistant = gtk.Assistant() self.assistant.set_title(_('Knoppix Remasterscript')) self.assistant.set_position(gtk.WIN_POS_CENTER)
def _success(self): self._pulse_stop() self.progress.set_fraction(1) self.status.set_text(_('Finished...')) self.event('success').emit()
from __future__ import print_function import os import os.path import gtk from knxremaster.build import build from knxremaster.interface.misc import translate as _ from knxremaster.interface.script import Script from knxremaster.toolkit.asynchron import gobject_exec from knxremaster.versions import get_version _steps = { 'prepare': _('prepare for building...'), 'filesystem_image': _('create filesystem image...'), 'filesystem_compress': _('compress filesystem image...'), 'minirt_files': _('collect files for minirt...'), 'minirt_image': _('create minirt image...'), 'minirt_compress': _('compress minirt image...'), 'iso_image': _('create cd/dvd iso image...'), 'cleanup': _('cleanup...') } class Build(): def __init__(self): self.assistant = gtk.Assistant() self.assistant.set_title(_('Knoppix Remasterscript')) self.assistant.set_position(gtk.WIN_POS_CENTER_ALWAYS)
def __init__(self, isolinux): gtk.VBox.__init__(self) self.set_spacing(5) self.isolinux = isolinux self.default = gtk.combo_box_new_text() self.default.connect('changed', self._default_changed) self.defaults = [] for number, name in enumerate(self.isolinux): if name != 'default': self.default.append_text(name) self.defaults.append(name) if 'default' in self.isolinux.attributes and name == self.isolinux.attributes['default']: self.default.set_active(number) self.timeout = gtk.Adjustment(int(self.isolinux.attributes['timeout']) if 'timeout' in self.isolinux.attributes else 0, 0, 10000, 1, 10) self.timeout.connect('value-changed', self._timeout_changed) self.entries = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING) for name, options in self.isolinux.items(): self.entries.append((name, options['kernel'], options['append'])) self.view = gtk.TreeView(self.entries) renderer = gtk.CellRendererText() renderer.set_property('editable', True) renderer.connect('edited', self._label_edited) self.label = gtk.TreeViewColumn(_('Label'), renderer, text=0) self.view.append_column(self.label) renderer = gtk.CellRendererText() renderer.connect('edited', self._kernel_edited) renderer.set_property('editable', True) column = gtk.TreeViewColumn(_('Kernel'), renderer, text=1) self.view.append_column(column) renderer = gtk.CellRendererText() renderer.connect('edited', self._append_edited) renderer.set_property('editable', True) column = gtk.TreeViewColumn(_('Append'), renderer, text=2) self.view.append_column(column) scrolled = gtk.ScrolledWindow() scrolled.add(self.view) add = gtk.Button(stock=gtk.STOCK_ADD) add.connect('clicked', self._add) remove = gtk.Button(stock=gtk.STOCK_REMOVE) remove.connect('clicked', self._remove) buttons = gtk.HButtonBox() buttons.set_layout(gtk.BUTTONBOX_START) buttons.set_spacing(5) buttons.pack_start(add, False, False) buttons.pack_start(remove, False, False) table = gtk.Table(2, 2) table.attach(label(_('Default:'), (1, 0.5)), 0, 1, 0, 1, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(self.default, 1, 2, 0, 1, ypadding=2) table.attach(label(_('Timeout:'), (1, 0.5)), 0, 1, 1, 2, xoptions=gtk.FILL, xpadding=5, ypadding=2) table.attach(gtk.SpinButton(self.timeout), 1, 2, 1, 2, ypadding=2) self.pack_start(table, False, False) self.pack_start(scrolled) self.pack_start(buttons, False, False)
# along with this program. If not, see <http://www.gnu.org/licenses/>. from __future__ import print_function import os import os.path import gtk from knxremaster.build import build from knxremaster.interface.misc import translate as _ from knxremaster.interface.script import Script from knxremaster.toolkit.asynchron import gobject_exec from knxremaster.versions import get_version _steps = {'prepare': _('prepare for building...'), 'filesystem_image': _('create filesystem image...'), 'filesystem_compress': _('compress filesystem image...'), 'minirt_files': _('collect files for minirt...'), 'minirt_image': _('create minirt image...'), 'minirt_compress': _('compress minirt image...'), 'iso_image': _('create cd/dvd iso image...'), 'cleanup': _('cleanup...')} class Build(): def __init__(self): self.assistant = gtk.Assistant() self.assistant.set_title(_('Knoppix Remasterscript')) self.assistant.set_position(gtk.WIN_POS_CENTER_ALWAYS) self.assistant.set_icon_from_file(os.path.join(os.path.dirname(__file__), 'resources', 'icon.png')) self.assistant.connect('prepare', self._prepare)