Example #1
0
 def create_app(self, url, name):
     manager = FogAppManager()
     try:
         app = manager.create(name, url, self.icon, self.themed_icon)
     except BaseFogAppException:
         logger.error("Error creating App %s" % url)
     else:
         app = Gio.DesktopAppInfo.new_from_filename(app.desktop_file)
         app.launch([], Gio.AppLaunchContext())
         self.destroy()
Example #2
0
 def create_app(self, url, name):
     manager = FogAppManager()
     try:
         app = manager.create(name, url, self.icon, self.themed_icon)
     except BaseFogAppException:
         logger.error("Error creating App %s" % url)
     else:
         app = Gio.DesktopAppInfo.new_from_filename(app.desktop_file)
         app.launch([], Gio.AppLaunchContext())
         self.destroy()
Example #3
0
 def on_create(self, widget, data=None):
     name = self.name.get_text()
     manager = FogAppManager()
     existing = manager.get_by_name(name)
     if existing:
         confirm = ConfirmDialog('Fogger', _('There\'s an app for that!'),
                     _('A fog app already exists by that name. '\
                       'Would you like to replace it with a new one?'),
                     existing.icon, self, _('Replace'))
         response = confirm.run()
         confirm.destroy()
         if response != Gtk.ResponseType.YES:
             self.name.grab_focus()
             return
     self.set_loading_url(True)
     self.error_message.hide()
     thread = threading.Thread(target=self.verify_url)
     thread.daemon = True
     thread.start()
Example #4
0
 def on_create(self, widget, data=None):
     name = self.name.get_text()
     manager = FogAppManager()
     existing = manager.get_by_name(name)
     if existing:
         confirm = ConfirmDialog('Fogger', _('There\'s an app for that!'),
                     _('A fog app already exists by that name. '\
                       'Would you like to replace it with a new one?'),
                     existing.icon, self, _('Replace'))
         response = confirm.run()
         confirm.destroy()
         if response != Gtk.ResponseType.YES:
             self.name.grab_focus()
             return
     self.set_loading_url(True)
     self.error_message.hide()
     thread = threading.Thread(target=self.verify_url)
     thread.daemon = True
     thread.start()
Example #5
0
def main():
    options, args = parse_options()
    option_selected = False
    if options.list:
        option_selected = True
        manager = FogAppManager()
        apps = manager.get_all()
        for app in apps:
            print '\033[1m%s\033[0m' % app.name, '\t', app.uuid, '\n'

    if options.remove:
        option_selected = True
        manager = FogAppManager()
        app = manager.get(options.remove)
        if app:
            app.remove()
            print 'Removed app %s (%s)' % (app.name, app.uuid)

    if options.remove_all:
        option_selected = True
        manager = FogAppManager()
        for app in manager.get_all():
            app.remove()
            print 'Removed app %s (%s)' % (app.name, app.uuid)

    if options.clean:
        import os
        option_selected = True
        manager = FogAppManager()
        apps = [app.desktop_file for app in  manager.get_all()]
        all_apps = [app for app in Gio.AppInfo.get_all() if 'fogapp' in app.get_keywords()]
        for app in all_apps:
            if not app.props.filename in apps:
                try:
                    os.remove(app.props.filename)
                except:
                    print 'Could not delete file %s' % app.props.filename
                else:
                    print 'Cleaned stale file: %s' % app.props.filename

    if option_selected:
        return

    # Run the application.
    if len(args) > 0:
        def activate_application(application):
            try:
                window.present()
            except NameError:
                pass

        gapp_name = 'net.launchpad.fogger%s' % args[0]
        g_app = Gtk.Application.new(gapp_name, Gio.ApplicationFlags.FLAGS_NONE)
        g_app.connect('activate', activate_application)
        g_app.run(args)
        if g_app.get_is_remote():
            return
        manager = FogAppManager()
        app = manager.get(args[0]) or manager.get_by_name(args[0])
        if app:
            app.run()
            window = app.window
            Gtk.main()
    else:
        window = FoggerWindow.FoggerWindow()
        window.show()
        Gtk.main()