diff options
author | Rafael Cordano <rafael.cordano@gmail.com> | 2012-12-15 21:16:45 (GMT) |
---|---|---|
committer | Rafael Cordano <rafael.cordano@gmail.com> | 2012-12-15 21:16:45 (GMT) |
commit | 131a654c5e4bd938e2e0143f98139041abf983b6 (patch) | |
tree | 4736ec76c17a1d566826364c61d3e950bba394cb | |
parent | dd68ea86a31716a219a2790bb3c9e6c82cebfc67 (diff) |
My first commit
-rw-r--r-- | Compress.py | 116 | ||||
-rw-r--r-- | CompressCanvas.py | 524 | ||||
-rw-r--r-- | CompressCanvas3.py | 526 | ||||
-rw-r--r-- | Probar.py | 6 | ||||
-rw-r--r-- | activity/Compress.svg | 55 | ||||
-rw-r--r-- | activity/activity.info | 8 | ||||
-rw-r--r-- | icons/Abrir.svg | 107 | ||||
-rw-r--r-- | icons/Archivo.svg | 25 | ||||
-rw-r--r-- | icons/Compress.svg | 55 | ||||
-rw-r--r-- | icons/audio.svg | 17 | ||||
-rw-r--r-- | icons/ceibaljam.png | bin | 0 -> 1412 bytes | |||
-rw-r--r-- | icons/ceibaljam.svg | 212 | ||||
-rw-r--r-- | icons/ceibaljam_chico.svg | 228 | ||||
-rw-r--r-- | icons/imagen.svg | 16 | ||||
-rw-r--r-- | icons/open-from-journal.svg | 131 | ||||
-rw-r--r-- | icons/sugarlabs.svg | 127 | ||||
-rw-r--r-- | icons/texto.svg | 17 | ||||
-rw-r--r-- | icons/video.svg | 20 | ||||
-rw-r--r-- | locale/en/LC_MESSAGES/org.CeibalJAM.Compress.mo | bin | 0 -> 3130 bytes | |||
-rw-r--r-- | locale/en/activity.linfo | 2 | ||||
-rw-r--r-- | po/Compress.pot | 206 | ||||
-rw-r--r-- | po/en.po | 208 | ||||
-rw-r--r-- | setup.py | 5 | ||||
-rw-r--r-- | utils.py | 158 | ||||
-rw-r--r-- | utils3.py | 160 |
25 files changed, 2929 insertions, 0 deletions
diff --git a/Compress.py b/Compress.py new file mode 100644 index 0000000..85d6b42 --- /dev/null +++ b/Compress.py @@ -0,0 +1,116 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Ignacio Rodríguez <nachoel01@gmail.com> +# Rafael Cordano <rafael.cordano@gmail.com> +# Ezequiel Pereira <eze2307@gmail.com> + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +try: # gtk3 + from sugar30.activity import activity + from sugar3.activity.widgets import StopButton + from sugar3.activity.widgets import ActivityToolbarButton + from sugar3.graphics.toolbutton import ToolButton + from sugar3.graphics.toolbarbox import ToolbarBox + from gettext import gettext as _ # Traduccion + import utils3 as utils + from utils3 import Boton + from gi.repository import Gtk + Abrir = Boton(_("Abrir"),"Abrir") + Arriba = Boton(_('Arriba'),'up') + Home = Boton(_('Directorio Zip'),'gtk-home') + #open_from_journal = Boton(_("Open from journal"),"open-from-journal") + Add = Boton(_('Añadir archivo'),"add") + save = Boton(_('Guardar archivo:')) + Barra = ToolbarBox() + from CompressCanvas3 import Canvas_box as PyApp + from CompressCanvas3 import * + class Compress(activity.Activity): + def __init__(self, handle): + activity.Activity.__init__(self, handle, True) + canvas = PyApp() + Actividad = ActivityToolbarButton(self) + Parar = StopButton(self) + Parar.set_tooltip(_('Parar - Gtk3')) + #<-------------Separadores-------------># + Separador = Gtk.SeparatorToolItem() + Separador2 = Gtk.SeparatorToolItem() + Separador3 = Gtk.SeparatorToolItem() + Separador3.set_expand(True) + Separador3.props.draw = False + Barra.toolbar.insert(Actividad, 0) + Barra.toolbar.insert(Separador2, 1) + Barra.toolbar.insert(Add, 2) + Barra.toolbar.insert(Home,3) + Barra.toolbar.insert(Arriba,4) + Barra.toolbar.insert(Separador3, 5) + Barra.toolbar.insert(Abrir, 6) + Barra.toolbar.insert(save,7) + Barra.toolbar.insert(Separador3, 8) + Barra.toolbar.insert(Parar, 9) + + self.set_toolbar_box(Barra) # Barra + self.set_canvas(canvas) + self.show_all() + save.hide() +except ImportError: + import gtk + from sugar.activity import activity + from sugar.activity.widgets import StopButton + from sugar.activity.widgets import ActivityToolbarButton + from sugar.graphics.toolbutton import ToolButton + from sugar.graphics.toolbarbox import ToolbarBox + from gettext import gettext as _ # Traduccion + import utils + from utils import Boton + Abrir = Boton(_("Abrir"),"Abrir") + Arriba = Boton(_('Arriba'),'up') + Home = Boton(_('Directorio Zip'),'gtk-home') + #open_from_journal = Boton(_("Open from journal"),"open-from-journal") + Add = Boton(_('Añadir archivo'),"add") + save = Boton(_('Guardar archivo:')) + Barra = ToolbarBox() + from CompressCanvas import Canvas_box as PyApp + from CompressCanvas import * + class Compress(activity.Activity): + def __init__(self, handle): + activity.Activity.__init__(self, handle, True) + canvas = PyApp() + Actividad = ActivityToolbarButton(self) + Parar = StopButton(self) + Parar.set_tooltip(_('Parar - Gtk2')) + #<-------------Separadores-------------># + Separador = gtk.SeparatorToolItem() + Separador2 = gtk.SeparatorToolItem() + Separador3 = gtk.SeparatorToolItem() + Separador3.set_expand(True) + Separador3.props.draw = False + Barra.toolbar.insert(Actividad, 0) + Barra.toolbar.insert(Separador2, 1) + Barra.toolbar.insert(Add, 2) + Barra.toolbar.insert(Home,3) + Barra.toolbar.insert(Arriba,4) + Barra.toolbar.insert(Separador3, 5) + Barra.toolbar.insert(Abrir, 6) + Barra.toolbar.insert(save,7) + Barra.toolbar.insert(Separador3, 8) + Barra.toolbar.insert(Parar, 9) + + self.set_toolbar_box(Barra) # Barra + self.set_canvas(canvas) + self.show_all() + save.hide() + + + diff --git a/CompressCanvas.py b/CompressCanvas.py new file mode 100644 index 0000000..11bd0c3 --- /dev/null +++ b/CompressCanvas.py @@ -0,0 +1,524 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Ignacio Rodríguez <nachoel01@gmail.com> +# Rafael Cordano <rafael.cordano@gmail.com> +# Ezequiel Pereira <eze2307@gmail.com> + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +try: + from Compress import * + import utils + import gtk,os,shutil,gobject,pygtk + from sugar.graphics.objectchooser import ObjectChooser + from sugar.datastore import datastore + shutil.rmtree('/tmp/Compress') + os.mkdir('/tmp/Compress') + os.mkdir('/tmp/Compress/Work') +except: + pass +from gettext import gettext as _ +Archivo = None +# CONSTANTES # +Directorio = _("Nuevo directorio") +Hboxx = gtk.HBox() +Uri = gtk.Entry() +Uri.set_text(os.getcwd()) +Uri.props.secondary_icon_stock = 'gtk-apply' +Uri.props.secondary_icon_activatable = True +Estado = False +entrada = gtk.Entry() +entrada.props.secondary_icon_stock = 'gtk-apply' +entrada.props.secondary_icon_activatable = True +botons = gtk.Button(gtk.STOCK_OK) +save = utils.Boton(_('Guardar archivo'),'document-save') +entrada.set_text(_("Para que los cambios se guarden presione la tecla '↵' o el icono √ ")) +### + +class Canvas(gtk.TreeView): + def __init__(self): + + self.modelo = None + self.treeview_arbol = None + self.barra_de_estado = None + gtk.TreeView.__init__(self) + try: + Home.connect('clicked',self.home) + Abrir.connect('clicked',self.open,True) + Arriba.connect('clicked',self.back) + save.connect('clicked',self.copiar_al_diario) +# open_from_journal.connect('clicked',self.open_diario) + Add.connect('clicked',self.anadir) + except: + pass + Uri.connect('activate',self.change) + Uri.connect("icon-press", self.change) + self.set_tooltip_text(_('Archivos en el directorio')) + self.set_property("rules-hint", True) + entrada.connect('icon-press',self.update,entrada) + entrada.connect('activate',self.update_e,entrada) + + self.Copiado = None + self.modelo = self.construir_lista() + self.construir_columnas() + self.seleccion = self.get_selection() # treeview.get_selection() + self.seleccion.set_mode(gtk.SELECTION_SINGLE) + self.seleccion.set_select_function(self.archivo_clickeado, self.modelo, True) + self.connect("row-activated", self.doble_click) + self.connect('button-release-event', self.menu_click) + self.connect('key-release-event', self.atras_button) + self.set_model(self.modelo) + self.presentado = False + self.show_all() + self.icon_name = None + if Estado: + Hboxx.show() + else: + Hboxx.hide() + def update(self,widget,a,b,entrada): # Icono + botons.connect('clicked',self.descomprimir_final,entrada.get_text()) + def update_e(self,widget,entrada): # Enter en la entrada + botons.connect('clicked',self.descomprimir_final,entrada.get_text()) + def compress_file(self,widget,archivo): # Comprime un archivo + utils.compress(utils.Archivos,os.getcwd()+"/"+utils.Archivos+".zip") + self.set_model(self.construir_lista()) + def open(self,widget,clickeado=False): # Abrir + if not clickeado: + try: + utils.decompress(utils.Archivos,Hboxx,'/tmp/Compress/Work','Abrir') + utils.Archivo_d = Uri.get_text()+"/"+utils.Archivos + os.chdir('/tmp/Compress/Work') + except: + utils.Abrir(Hboxx,entrada) + if clickeado: + utils.Abrir(Hboxx,entrada) + Uri.set_text(os.getcwd()) + Uri.show() + self.set_model(self.construir_lista()) + def archivo_clickeado(self, seleccion, modelo, archivo, seleccionado, a): # Cuando se selecciona + iter= modelo.get_iter(archivo) + directorio = modelo.get_value(iter,0) + utils.Archivos = directorio + estado = utils.describe_archivo(os.getcwd()+"/"+utils.Archivos) + + if 'image' in estado: + self.icon_name = 'imagen' + save.set_tooltip(_('Guardar imagen: '+utils.Archivos+' al diario')) + if 'text' in estado: + self.icon_name = 'texto' + save.set_tooltip(_('Guardar texto: '+utils.Archivos+' al diario')) + if 'audio' in estado: + self.icon_name = 'audio' + save.set_tooltip(_('Guardar audio: '+utils.Archivos+' al diario')) + + if 'video' in estado: + self.icon_name = 'video' + save.set_tooltip(_('Guardar: '+utils.Archivos+' al diario')) + if not 'directory' in estado and not 'no read permission' in estado: + save.set_icon_name(self.icon_name) + save.show() + else: + save.hide() + return True + def anadir(self,widget): + Selector = gtk.FileChooserDialog(_("Seleccione un archivo"),None,gtk.FILE_CHOOSER_ACTION_OPEN,(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,gtk.STOCK_OK, gtk.RESPONSE_OK)) + Selector.set_default_response(gtk.RESPONSE_CANCEL) + if utils.Archivo_d != None: + Echo = Selector.run() + if Echo == gtk.RESPONSE_OK: + File = Selector.get_filename() + print 'ARCHIVO' + print File + utils.compress(File,utils.Archivo_d) + print 'AÑADIDO' + utils.decompress(utils.Archivo_d,Hboxx) + print 'DESCOMPRIMIDO' + Selector.destroy() + elif Echo == gtk.RESPONSE_CANCEL: + Selector.destroy() + if utils.Archivo_d == None: + self.errores('Copiar_a_nada') + os.chdir('/tmp/Compress/Work') + self.set_model(self.construir_lista()) + Uri.set_text(os.getcwd()) + Uri.show() + def open_diario(self,widget): # Abrir un zip desde el diario. + chooser = ObjectChooser() + resultado = chooser.run() + if resultado == gtk.RESPONSE_ACCEPT: + Archivo_s = chooser.get_selected_object() + Archivo = Archivo_s.get_file_path() + try: + print Archivo + utils.Archivo_d = Archivo + utils.decompress(Archivo,Hboxx,'/tmp/Compress/Work','Abrir',True) + + except IOError: + Mensaje = _("""Oh..Parece que no selecciono un archivo zip""") + info = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK,message_format=Mensaje) + a = info.run() + if a == gtk.RESPONSE_OK: + info.destroy() + self.set_model(self.construir_lista()) + Uri.set_text(os.getcwd()) + def construir_lista(self): + store = gtk.ListStore(str) + dirList=os.listdir(os.getcwd()) + dircontents = [] + for item in dirList: + if item[0] != '.': + if os.path.isdir(item): + dircontents.append(['/'+item]) + else: + dircontents.append([item]) + + dircontents.sort() + for act in dircontents: + store.append([act[0]]) + return store + def descomprimir_en(self,widget=None): + if not self.presentado: + label = gtk.Label(_('Carpeta:')) + + #entrada.set_text('/tmp/Compress/Work') + boton = gtk.Button(gtk.STOCK_OPEN) + botona = gtk.Button(gtk.STOCK_CANCEL) + botona.set_use_stock(True) + botona.connect('clicked',lambda x:Hboxx.hide()) + boton.set_use_stock(True) + boton.connect('clicked',utils.Abrir_Directorio,entrada,utils.Archivos,Estado,Hboxx) + Hboxx.pack_start(label,False,False,0) + Hboxx.pack_start(entrada,True,True,0) + Hboxx.modify_bg(gtk.STATE_NORMAL,gtk.gdk.color_parse('#FF0000')) + Hboxx.pack_start(boton,False,False,0) + botons.set_use_stock(True) + Hboxx.pack_start(botons,False,False,0) + Hboxx.pack_start(botona,False,False,0) + + Hboxx.show_all() + self.presentado = True + else: + Hboxx.show_all() + def descomprimir_final(self,widget,dire): + utils.decompress(utils.Archivos,Hboxx,dire,'Descomprimir') + Hboxx.hide() + os.chdir(dire) + Uri.set_text(os.getcwd()) + Uri.show() + self.set_model(self.construir_lista()) + def descomprimir(self,widget): + self.descomprimir_en() + Estado = True + def construir_columnas(self): + columna= gtk.TreeViewColumn(_('Archivos en el directorio')) + celda_de_texto = gtk.CellRendererText() # para el texto + columna.pack_start(celda_de_texto, True) + self.append_column (columna) + columna.set_attributes(celda_de_texto, text=0) + def doble_click(self, widget, row, col): # Clickeado + model = widget.get_model() + target = model[row][0] + Archivo = utils.describe_archivo(os.getcwd()+"/"+utils.Archivos) + if target[0] != "/": + utils.Archivos = target + ventana = gtk.Window() + ventana.set_title(target) + ventana.connect('destroy',lambda x: ventana.destroy) + if 'image' in Archivo: + try: + pix = gtk.gdk.pixbuf_new_from_file(target) + image = gtk.Image() + image.set_from_pixbuf(pix) + ventana.add(image) + image.show() + ventana.show() + except IOError: + self.ops(_('imagen')) + if not 'binary' in Archivo: + try: + ventana.set_size_request(gtk.gdk.screen_width()/2,gtk.gdk.screen_height()/2) + texta = gtk.ScrolledWindow() + texs = gtk.TextBuffer() + text = gtk.TextView(texs) + texta.add(text) + text.set_editable(False) + texs.set_text(open(target).read()) + ventana.add(texta) + ventana.show_all() + except IOError: + self.ops(_('archivo')) + else: + try: + os.chdir(os.getcwd()+target) + self.set_model(self.construir_lista()) + except: + self.ops(_('directorio')) + Uri.set_text(os.getcwd()) + Uri.show() + def create_columns(self, treeView): + rendererText = gtk.CellRendererText() + img = celda_de_imagen = gtk.CellRendererPixbuf() + column = gtk.TreeViewColumn(_('Archivos en el directorio')) + column.set_sort_column_id(0) + column.pack_start(rendererText,False) + column.set_attributes(rendererText, text=0) + self.append_column(column) + def close(self,widget): + shutil.rmtree('/tmp/Compress/Work') + os.mkdir('/tmp/Compress/Work') + utils.Archivo_d = None + self.set_model(self.construir_lista()) + def menu_click(self,widget,event): + Boton = event.button + Tiempo = event.time + Menu = gtk.Menu() + Archivo = utils.describe_archivo(os.getcwd()+"/"+utils.Archivos) + if Boton == 3: + if utils.Archivo_d == None: + if 'zip' in Archivo: + Abrir = gtk.MenuItem(_('Abrir zip')) + Abrir.connect('activate',self.open) + Menu.append(Abrir) + else: + pass + else: + Close = gtk.MenuItem(_('Cerrar zip: %s'%utils.Archivo_d)) + Close.connect('activate',self.close) + Menu.append(Close) + Menu.append(gtk.SeparatorMenuItem()) + Copy = gtk.MenuItem(_('Copiar')) + Copy.connect('activate',self.copy) + if 'zip' in Archivo: + Des = gtk.MenuItem(_('Descomprimir')) + Des.connect('activate',self.descomprimir) + Cut = gtk.MenuItem(_('Cortar')) + Cut.connect('activate',self.cut) + Delete = gtk.MenuItem(_('Borrar')) + Delete.connect('activate',self.sure) + CompressFile= gtk.MenuItem(_('Comprimir este archivo')) + CompressFile.connect('activate',self.compress_file,utils.Archivos) + Menu.append(CompressFile) + try: + Menu.append(Des) + except: + pass + Menu.append(gtk.SeparatorMenuItem()) + if utils.Archivo_d != None: + Copyw = gtk.MenuItem(_('Copiar al zip')) + Copyw.connect('activate',self.copy,True) + Menu.append(Copyw) + Menu.append(Copy) + + Menu.append(Cut) + Back = gtk.MenuItem(_('Atras')) + Back.connect('activate',self.back) + if os.listdir('/tmp/Compress/') != ['Work']: + Paste = gtk.MenuItem(_('Pegar')) + Paste.connect('activate',self.paste) + Menu.append(Paste) + Menu.append(gtk.SeparatorMenuItem()) + Menu.append(Delete) + Menu.append(Back) + Menu.show_all() + Menu.popup(None, None, None, Boton, Tiempo) + def atras_button(self,widget,event): + Boton = event.keyval + if Boton == 65288: + self.back() + if Boton == 65535: # Solo existe en la 1.5 y en las magallanes + self.sure() + def delete(self,widget=None): + try: + try: + os.remove(os.getcwd()+"/"+utils.Archivos) + except: + shutil.rmtree(os.getcwd()+utils.Archivos) + except: + self.errores('Desconocido') + + self.set_model(self.construir_lista()) + def cut(self,widget): + try: + self.Copiado = utils.Archivos +# os.system('mv '+ os.getcwd()+"/"+utils.Archivos+" "+'/tmp/Compress/'+utils.Archivos) + shutil.move(os.getcwd()+"/"+utils.Archivos,'/tmp/Compress/'+utils.Archivos) + self.set_model(self.construir_lista()) + except: + self.errores('Cortar') + def paste(self,widget): + try: + + #os.system('mv /tmp/Compress/'+self.Copiado+" " + os.getcwd()+"/") + shutil.move('/tmp/Compress/'+self.Copiado,os.getcwd()+"/") + self.set_model(self.construir_lista()) + except: + List = os.listdir('/tmp/Compress') + if List == ['Work']: + self.errores("Pegar_None") + else: + self.errores('Pegar') + def back(self,widget=None): + os.chdir(os.getcwd()+"/..") + self.set_model(self.construir_lista()) + Uri.set_text(os.getcwd()) + Uri.show() + def change(self,widget,a=None,b=None): + try: + os.chdir(widget.get_text()) + self.set_model(self.construir_lista()) + except: + self.ops(_('directorio')) + def copy(self,widget,W=False): + try: + self.Copiado = utils.Archivos + if not W: + try: + shutil.copy(os.getcwd()+"/"+utils.Archivos,'/tmp/Compress/') + except: + shutil.copytree(os.getcwd()+"/"+utils.Archivos,'/tmp/Compress/'+utils.Archivos) + + if W: + try: + utils.compress("./"+utils.Archivos,utils.Archivo_d) + utils.decompress(utils.Archivo_d,Hboxx) + + except: + self.errores('Copiar_a_nada') + + except: + self.errores('Copiar') + def sure(self,widget=None): + info = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_YES_NO, + message_format=_("Seguro que desea borrar el archivo: %s" %utils.Archivos)) + respuesta = info.run() + if respuesta == gtk.RESPONSE_YES: + self.delete() + info.destroy() + else: + info.destroy() + def ops(self,donde): + info = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK, + message_format=_("Error al acceder al "+donde+" razón:\n%s" %self.razon(str(Uri.get_text()),donde))) + respuesta = info.run() + if respuesta == gtk.RESPONSE_OK: + Ant = os.getcwd() + os.chdir(Ant) + Uri.set_text(os.getcwd()) + Uri.show() + info.destroy() + def razon(self,directorio,razon): + if not os.path.exists(directorio): + return _("El "+razon+" no existe") + else: + try: + open(directorio) + except: + return _("No tiene acceso a ese "+razon ) + try: + open(directorio+"/") + except: + return _(directorio+" no es un directorio") + def home(self,widget=None): + os.chdir('/tmp/Compress/Work') + Uri.set_text(os.getcwd()) + Uri.show() + self.set_model(self.construir_lista()) + def copiar_al_diario(self,widget): + descripcion = utils.describe_archivo(utils.Archivos) + mime = utils.describe_mime(utils.Archivos) + if not 'directory' in descripcion: + acopiar = datastore.create() + acopiar.metadata['title'] = utils.Archivos + acopiar.metadata['mime_type'] = mime + acopiar.set_file_path(os.getcwd()+"/"+utils.Archivos) + datastore.write(acopiar) + acopiar.destroy() + def errores(self,Evento=None): + if Evento == "Copiar": + info = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK,message_format=_("Error al intentar copiar: %s "%utils.Archivos)) + a = info.run() + if a == gtk.RESPONSE_OK: + info.destroy() + if Evento == "Cortar": + info = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK,message_format=_("Error al intentar cortar: %s "%utils.Archivos)) + a = info.run() + if a == gtk.RESPONSE_OK: + info.destroy() + if Evento == "Pegar_None": + info = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK,message_format=_("Error: No hay nada en el portapapeles" )) + a = info.run() + if a == gtk.RESPONSE_OK: + info.destroy() + if Evento == "Pegar": + info = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK,message_format=_("Error al intentar pegar un archivo" )) + a = info.run() + if a == gtk.RESPONSE_OK: + info.destroy() + if Evento == 'Copiar_a_nada': + info = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK,message_format=_("¡Ups! Parece que aún no abrio ningun archivo")) + a = info.run() + if a == gtk.RESPONSE_OK: + info.destroy() + if Evento == 'Desconocido': + info = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK,message_format=_("Error desconocido")) + a = info.run() + if a == gtk.RESPONSE_OK: + info.destroy() +class Canvas_box(gtk.EventBox): + def __init__(self): + gtk.EventBox.__init__(self) + + vbox = gtk.VBox(False, 8) + xhbox = gtk.HBox() + sw = gtk.ScrolledWindow() + sw.set_shadow_type(gtk.SHADOW_ETCHED_IN) + sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + xhbox.pack_start(Uri,True,True,0) + hbox = gtk.HBox() + vbox.pack_start(xhbox,False,False) + vbox.pack_start(hbox) + Logo = gtk.Image() + Logo.set_from_file('icons/ceibaljam.svg') + hbox.pack_start(sw, True, True, 0) + sw.add(Canvas()) + hx = gtk.HBox() + Logo2 = gtk.Image() + Logo.set_tooltip_text('http://www.ceibaljam.org') + Logo2.set_from_file('icons/sugarlabs.svg') + Logo2.set_tooltip_text('http://www.wiki.sugarlabs.org') + + self.add(vbox) + vbox.pack_start(Hboxx,False,False,0) + if gtk.gdk.screen_width() >= 1200: + vbox.pack_start(hx,False,False,0) + hx.pack_start(Logo2,True,True,0) + hx.pack_start(Logo,True,True,100) + else: + Uri.set_size_request(int(gtk.gdk.screen_width()-157.797),int(45.466)) + Uri.show() + LogoChico = gtk.Image() + LogoChico.set_from_file('icons/ceibaljam_chico.svg') + + LogoChico.show() + xhbox.pack_start(LogoChico,False,False,0) + self.show_all() + +if __name__ == "__main__": + a = gtk.Window() + a.add(Canvas_box()) + a.set_title('COMPRESS CANVAS GTK2') + a.show_all() + a.connect('destroy',lambda x: gtk.main_quit()) + a.set_size_request(500,500) + gtk.main() diff --git a/CompressCanvas3.py b/CompressCanvas3.py new file mode 100644 index 0000000..9f22b95 --- /dev/null +++ b/CompressCanvas3.py @@ -0,0 +1,526 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Ignacio Rodríguez <nachoel01@gmail.com> +# Rafael Cordano <rafael.cordano@gmail.com> +# Ezequiel Pereira <eze2307@gmail.com> + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +try: + from Compress import * + import utils3 as utils + import shutil,os,pygtk + from gi.repository import Gtk,Gdk,GdkPixbuf + from sugar3.graphics.objectchooser import ObjectChooser + from sugar3.datastore import datastore + shutil.rmtree('/tmp/Compress') + os.mkdir('/tmp/Compress') + os.mkdir('/tmp/Compress/Work') +except: + pass +from gettext import gettext as _ +Archivo = None +# CONSTANTES # +Directorio = _("Nuevo directorio") +Hboxx = Gtk.HBox() +Uri = Gtk.Entry() +Uri.set_text(os.getcwd()) +Uri.props.secondary_icon_stock = 'gtk-apply' +Uri.props.secondary_icon_activatable = True +Estado = False +entrada = Gtk.Entry() +entrada.props.secondary_icon_stock = 'gtk-apply' +entrada.props.secondary_icon_activatable = True +botons = Gtk.Button(Gtk.STOCK_OK) +save = utils.Boton(_('Guardar archivo'),'document-save') +entrada.set_text(_("Para que los cambios se guarden presione la tecla '↵' o el icono √ ")) +### + +class Canvas(Gtk.TreeView): + def __init__(self): + + self.modelo = None + self.treeview_arbol = None + self.barra_de_estado = None + Gtk.TreeView.__init__(self) + try: + Home.connect('clicked',self.home) + Abrir.connect('clicked',self.open,True) + Arriba.connect('clicked',self.back) + save.connect('clicked',self.copiar_al_diario) +# open_from_journal.connect('clicked',self.open_diario) + Add.connect('clicked',self.anadir) + except: + pass + Uri.connect('activate',self.change) + Uri.connect("icon-press", self.change) + self.set_tooltip_text(_('Archivos en el directorio')) + self.set_property("rules-hint", True) + entrada.connect('icon-press',self.update,entrada) + entrada.connect('activate',self.update_e,entrada) + + self.Copiado = None + self.modelo = self.construir_lista() + self.construir_columnas() + self.seleccion = self.get_selection() # treeview.get_selection() + self.seleccion.set_mode(Gtk.SelectionMode.SINGLE) + self.seleccion.set_select_function(self.archivo_clickeado, self.modelo) + self.connect("row-activated", self.doble_click) + self.connect('button-release-event', self.menu_click) + self.connect('key-release-event', self.atras_button) + self.set_model(self.modelo) + self.presentado = False + self.show_all() + self.icon_name = None + if Estado: + Hboxx.show() + else: + Hboxx.hide() + def update(self,widget,a,b,entrada): # Icono + botons.connect('clicked',self.descomprimir_final,entrada.get_text()) + def update_e(self,widget,entrada): # Enter en la entrada + botons.connect('clicked',self.descomprimir_final,entrada.get_text()) + def compress_file(self,widget,archivo): # Comprime un archivo + utils.compress(utils.Archivos,os.getcwd()+"/"+utils.Archivos+".zip") + self.set_model(self.construir_lista()) + def open(self,widget,clickeado=False): # Abrir + if not clickeado: + try: + utils.decompress(utils.Archivos,Hboxx,'/tmp/Compress/Work','Abrir') + utils.Archivo_d = Uri.get_text()+"/"+utils.Archivos + os.chdir('/tmp/Compress/Work') + except: + utils.Abrir(Hboxx,entrada) + if clickeado: + utils.Abrir(Hboxx,entrada) + Uri.set_text(os.getcwd()) + Uri.show() + self.set_model(self.construir_lista()) + def archivo_clickeado(self, seleccion, modelo, archivo, seleccionado, a=None): # Cuando se selecciona + iter= modelo.get_iter(archivo) + directorio = modelo.get_value(iter,0) + utils.Archivos = directorio + estado = utils.describe_archivo(os.getcwd()+"/"+utils.Archivos) + + if 'image' in estado: + self.icon_name = 'imagen' + save.set_tooltip(_('Guardar imagen: '+utils.Archivos+' al diario')) + if 'text' in estado: + self.icon_name = 'texto' + save.set_tooltip(_('Guardar texto: '+utils.Archivos+' al diario')) + if 'audio' in estado: + self.icon_name = 'audio' + save.set_tooltip(_('Guardar audio: '+utils.Archivos+' al diario')) + + if 'video' in estado: + self.icon_name = 'video' + save.set_tooltip(_('Guardar: '+utils.Archivos+' al diario')) + if not 'directory' in estado and not 'no read permission' in estado: + save.set_icon_name(self.icon_name) + save.show() + else: + save.hide() + return True + def anadir(self,widget): + Selector = Gtk.FileChooserDialog(_("Seleccione un archivo"),None,Gtk.FileChooserAction.OPEN,(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,Gtk.STOCK_OK, Gtk.ResponseType.OK)) + Selector.set_default_response(Gtk.ResponseType.CANCEL) + if utils.Archivo_d != None: + Echo = Selector.run() + if Echo == Gtk.ResponseType.OK: + File = Selector.get_filename() + print 'ARCHIVO' + print File + utils.compress(File,utils.Archivo_d) + print 'AÑADIDO' + utils.decompress(utils.Archivo_d,Hboxx) + print 'DESCOMPRIMIDO' + Selector.destroy() + elif Echo == Gtk.ResponseType.CANCEL: + Selector.destroy() + if utils.Archivo_d == None: + self.errores('Copiar_a_nada') + os.chdir('/tmp/Compress/Work') + self.set_model(self.construir_lista()) + Uri.set_text(os.getcwd()) + Uri.show() + def open_diario(self,widget): # Abrir un zip desde el diario. + chooser = ObjectChooser() + resultado = chooser.run() + if resultado == Gtk.ResponseType.ACCEPT: + Archivo_s = chooser.get_selected_object() + Archivo = Archivo_s.get_file_path() + try: + print Archivo + utils.Archivo_d = Archivo + utils.decompress(Archivo,Hboxx,'/tmp/Compress/Work','Abrir',True) + + except IOError: + Mensaje = _("""Oh..Parece que no selecciono un archivo zip""") + info = Gtk.MessageDialog(type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK,message_format=Mensaje) + a = info.run() + if a == Gtk.ResponseType.OK: + info.destroy() + self.set_model(self.construir_lista()) + Uri.set_text(os.getcwd()) + def construir_lista(self): + store = Gtk.ListStore(str) + dirList=os.listdir(os.getcwd()) + dircontents = [] + for item in dirList: + if item[0] != '.': + if os.path.isdir(item): + dircontents.append(['/'+item]) + else: + dircontents.append([item]) + + dircontents.sort() + for act in dircontents: + store.append([act[0]]) + return store + def descomprimir_en(self,widget=None): + if not self.presentado: + label = Gtk.Label(_('Carpeta:')) + + #entrada.set_text('/tmp/Compress/Work') + boton = Gtk.Button(Gtk.STOCK_OPEN) + botona = Gtk.Button(Gtk.STOCK_CANCEL) + botona.set_use_stock(True) + botona.connect('clicked',lambda x:Hboxx.hide()) + boton.set_use_stock(True) + boton.connect('clicked',utils.Abrir_Directorio,entrada,utils.Archivos,Estado,Hboxx) + Hboxx.pack_start(label,False,False,0) + Hboxx.pack_start(entrada,True,True,0) + Hboxx.pack_start(boton,False,False,0) + botons.set_use_stock(True) + Hboxx.pack_start(botons,False,False,0) + Hboxx.pack_start(botona,False,False,0) + + Hboxx.show_all() + self.presentado = True + else: + Hboxx.show_all() + def descomprimir_final(self,widget,dire): + utils.decompress(utils.Archivos,Hboxx,dire,'Descomprimir') + Hboxx.hide() + os.chdir(dire) + Uri.set_text(os.getcwd()) + Uri.show() + self.set_model(self.construir_lista()) + def descomprimir(self,widget): + self.descomprimir_en() + Estado = True + def construir_columnas(self): + columna= Gtk.TreeViewColumn(_('Archivos en el directorio')) + celda_de_texto = Gtk.CellRendererText() # para el texto + columna.pack_start(celda_de_texto, True) + self.append_column (columna) + columna.set_attributes(celda_de_texto, text=0) + def doble_click(self, widget, row, col): # Clickeado + model = widget.get_model() + target = model[row][0] + Archivo = utils.describe_archivo(os.getcwd()+"/"+utils.Archivos) + if target[0] != "/": + utils.Archivos = target + ventana = Gtk.Window() + ventana.set_title(target) + ventana.connect('destroy',lambda x: ventana.destroy) + if 'image' in Archivo: + try: + pix = GdkPixbuf.Pixbuf.new_from_file(target) + image = Gtk.Image() + image.set_from_pixbuf(pix) + ventana.add(image) + image.show() + ventana.show() + except IOError: + self.ops(_('imagen')) + if not 'binary' in Archivo: + try: + ventana.set_size_request(Gdk.Screen.width()/2,Gdk.Screen.height()/2) + texta = Gtk.ScrolledWindow() + texs = Gtk.TextBuffer() + text = Gtk.TextView() + text.set_buffer(texs) + texta.add(text) + text.set_editable(False) + texs.set_text(open(target).read()) + ventana.add(texta) + ventana.show_all() + except IOError: + self.ops(_('archivo')) + else: + try: + os.chdir(os.getcwd()+target) + self.set_model(self.construir_lista()) + except: + self.ops(_('directorio')) + Uri.set_text(os.getcwd()) + Uri.show() + def create_columns(self, treeView): + rendererText = Gtk.CellRendererText() + img = celda_de_imagen = Gtk.CellRendererPixbuf() + column = Gtk.TreeViewColumn(_('Archivos en el directorio')) + column.set_sort_column_id(0) + column.pack_start(rendererText,False) + column.set_attributes(rendererText, text=0) + self.append_column(column) + def close(self,widget): + shutil.rmtree('/tmp/Compress/Work') + os.mkdir('/tmp/Compress/Work') + utils.Archivo_d = None + self.set_model(self.construir_lista()) + def menu_click(self,widget,event): + Boton = event.button + Tiempo = event.time + Menu = Gtk.Menu() + Archivo = utils.describe_archivo(os.getcwd()+"/"+utils.Archivos) + if Boton == 3: + if utils.Archivo_d == None: + if 'zip' in Archivo: + Abrir = Gtk.MenuItem(_('Abrir zip')) + Abrir.connect('activate',self.open) + Menu.append(Abrir) + else: + pass + else: + Close = Gtk.MenuItem(_('Cerrar zip: %s'%utils.Archivo_d)) + Close.connect('activate',self.close) + Menu.append(Close) + Menu.append(Gtk.SeparatorMenuItem()) + Copy = Gtk.MenuItem(_('Copiar')) + Copy.connect('activate',self.copy) + if 'zip' in Archivo: + Des = Gtk.MenuItem(_('Descomprimir')) + Des.connect('activate',self.descomprimir) + Cut = Gtk.MenuItem(_('Cortar')) + Cut.connect('activate',self.cut) + Delete = Gtk.MenuItem(_('Borrar')) + Delete.connect('activate',self.sure) + CompressFile= Gtk.MenuItem(_('Comprimir este archivo')) + CompressFile.connect('activate',self.compress_file,utils.Archivos) + Menu.append(CompressFile) + try: + Menu.append(Des) + except: + pass + Menu.append(Gtk.SeparatorMenuItem()) + if utils.Archivo_d != None: + Copyw = Gtk.MenuItem(_('Copiar al zip')) + Copyw.connect('activate',self.copy,True) + Menu.append(Copyw) + Menu.append(Copy) + + Menu.append(Cut) + Back = Gtk.MenuItem(_('Atras')) + Back.connect('activate',self.back) + if os.listdir('/tmp/Compress/') != ['Work']: + Paste = Gtk.MenuItem(_('Pegar')) + Paste.connect('activate',self.paste) + Menu.append(Paste) + Menu.append(Gtk.SeparatorMenuItem()) + Menu.append(Delete) + Menu.append(Back) + Menu.show_all() + Menu.popup(None, None, None, None,Boton, Tiempo) + def atras_button(self,widget,event): + Boton = event.keyval + if Boton == 65288: + self.back() + if Boton == 65535: # Solo existe en la 1.5 y en las magallanes + self.sure() + def delete(self,widget=None): + try: + try: + os.remove(os.getcwd()+"/"+utils.Archivos) + except: + shutil.rmtree(os.getcwd()+utils.Archivos) + except: + self.errores('Desconocido') + + self.set_model(self.construir_lista()) + def cut(self,widget): + try: + self.Copiado = utils.Archivos +# os.system('mv '+ os.getcwd()+"/"+utils.Archivos+" "+'/tmp/Compress/'+utils.Archivos) + shutil.move(os.getcwd()+"/"+utils.Archivos,'/tmp/Compress/'+utils.Archivos) + self.set_model(self.construir_lista()) + except: + self.errores('Cortar') + def paste(self,widget): + try: + + #os.system('mv /tmp/Compress/'+self.Copiado+" " + os.getcwd()+"/") + shutil.move('/tmp/Compress/'+self.Copiado,os.getcwd()+"/") + self.set_model(self.construir_lista()) + except: + List = os.listdir('/tmp/Compress') + if List == ['Work']: + self.errores("Pegar_None") + else: + self.errores('Pegar') + def back(self,widget=None): + os.chdir(os.getcwd()+"/..") + self.set_model(self.construir_lista()) + Uri.set_text(os.getcwd()) + Uri.show() + def change(self,widget,a=None,b=None): + try: + os.chdir(widget.get_text()) + self.set_model(self.construir_lista()) + except: + self.ops(_('directorio')) + def copy(self,widget,W=False): + try: + self.Copiado = utils.Archivos + if not W: + try: + shutil.copy(os.getcwd()+"/"+utils.Archivos,'/tmp/Compress/') + except: + shutil.copytree(os.getcwd()+"/"+utils.Archivos,'/tmp/Compress/'+utils.Archivos) + + if W: + try: + utils.compress("./"+utils.Archivos,utils.Archivo_d) + utils.decompress(utils.Archivo_d,Hboxx) + + except: + self.errores('Copiar_a_nada') + + except: + self.errores('Copiar') + def sure(self,widget=None): + info = Gtk.MessageDialog(type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.YES_NO, + message_format=_("Seguro que desea borrar el archivo: %s" %utils.Archivos)) + respuesta = info.run() + if respuesta == Gtk.ResponseType.YES: + self.delete() + info.destroy() + else: + info.destroy() + def ops(self,donde): + info = Gtk.MessageDialog(type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK, + message_format=_("Error al acceder al "+donde+" razón:\n%s" %self.razon(str(Uri.get_text()),donde))) + respuesta = info.run() + if respuesta == Gtk.ResponseType.OK: + Ant = os.getcwd() + os.chdir(Ant) + Uri.set_text(os.getcwd()) + Uri.show() + info.destroy() + def razon(self,directorio,razon): + if not os.path.exists(directorio): + return _("El "+razon+" no existe") + else: + try: + open(directorio) + except: + return _("No tiene acceso a ese "+razon ) + try: + open(directorio+"/") + except: + return _(directorio+" no es un directorio") + def home(self,widget=None): + os.chdir('/tmp/Compress/Work') + Uri.set_text(os.getcwd()) + Uri.show() + self.set_model(self.construir_lista()) + def copiar_al_diario(self,widget): + descripcion = utils.describe_archivo(utils.Archivos) + mime = utils.describe_mime(utils.Archivos) + if not 'directory' in descripcion: + acopiar = datastore.create() + acopiar.metadata['title'] = utils.Archivos + acopiar.metadata['mime_type'] = mime + acopiar.set_file_path(os.getcwd()+"/"+utils.Archivos) + datastore.write(acopiar) + acopiar.destroy() + def errores(self,Evento=None): + if Evento == "Copiar": + info = Gtk.MessageDialog(type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK,message_format=_("Error al intentar copiar: %s "%utils.Archivos)) + a = info.run() + if a == Gtk.ResponseType.OK: + info.destroy() + if Evento == "Cortar": + info = Gtk.MessageDialog(type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK,message_format=_("Error al intentar cortar: %s "%utils.Archivos)) + a = info.run() + if a == Gtk.ResponseType.OK: + info.destroy() + if Evento == "Pegar_None": + info = Gtk.MessageDialog(type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK,message_format=_("Error: No hay nada en el portapapeles" )) + a = info.run() + if a == Gtk.ResponseType.OK: + info.destroy() + if Evento == "Pegar": + info = Gtk.MessageDialog(type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK,message_format=_("Error al intentar pegar un archivo" )) + a = info.run() + if a == Gtk.ResponseType.OK: + info.destroy() + if Evento == 'Copiar_a_nada': + info = Gtk.MessageDialog(type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK,message_format=_("¡Ups! Parece que aún no abrio ningun archivo")) + a = info.run() + if a == Gtk.ResponseType.OK: + info.destroy() + if Evento == 'Desconocido': + info = Gtk.MessageDialog(type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK,message_format=_("Error desconocido")) + a = info.run() + if a == Gtk.ResponseType.OK: + info.destroy() +class Canvas_box(Gtk.EventBox): + def __init__(self): + Gtk.EventBox.__init__(self) + + vbox = Gtk.VBox(False, 8) + xhbox = Gtk.HBox() + sw = Gtk.ScrolledWindow() + sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN) + sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) + + xhbox.pack_start(Uri,True,True,0) + hbox = Gtk.HBox() + vbox.pack_start(xhbox,False,False,0) + vbox.pack_start(hbox,True,True,0) + Logo = Gtk.Image() + Logo.set_from_file('icons/ceibaljam.svg') + hbox.pack_start(sw, True, True, 0) + sw.add(Canvas()) + hx = Gtk.HBox() + Logo2 = Gtk.Image() + Logo.set_tooltip_text('http://www.ceibaljam.org') + Logo2.set_from_file('icons/sugarlabs.svg') + Logo2.set_tooltip_text('http://www.wiki.sugarlabs.org') + self.add(vbox) + vbox.pack_start(Hboxx,False,False,0) + if Gdk.Screen.width() >= 1200: + vbox.pack_start(hx,False,False,0) + hx.pack_start(Logo2,True,True,0) + hx.pack_start(Logo,True,True,100) + else: + Uri.set_size_request(int(Gdk.Screen.width()-157.797),int(45.466)) + Uri.show() + LogoChico = Gtk.Image() + LogoChico.set_from_file('icons/ceibaljam_chico.svg') + + LogoChico.show() + xhbox.pack_start(LogoChico,False,False,0) + self.show_all() + +if __name__ == "__main__": + a = Gtk.Window() + a.add(Canvas_box()) + a.show_all() + a.set_title('COMPRESS CANVAS GTK3') + + a.connect('destroy',lambda x: Gtk.main_quit()) + a.set_size_request(500,500) + Gtk.main() diff --git a/Probar.py b/Probar.py new file mode 100644 index 0000000..8e69145 --- /dev/null +++ b/Probar.py @@ -0,0 +1,6 @@ +import CompressCanvas as C +import gtk +a = gtk.Window() +a.add(C.Canvas_box()) +a.show_all() +gtk.main() diff --git a/activity/Compress.svg b/activity/Compress.svg new file mode 100644 index 0000000..38b475f --- /dev/null +++ b/activity/Compress.svg @@ -0,0 +1,55 @@ +<?xml version="1.0" ?><!-- Created with Inkscape (http://www.inkscape.org/) --><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [ + <!ENTITY stroke_color "#000000"> + <!ENTITY fill_color "#ffffff"> +]><svg height="64px" id="svg4657" inkscape:version="0.47 r22583" sodipodi:docname="Compress.svg" style="" version="1.1" width="64px" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"> + <defs id="defs4659" style=""> + <inkscape:perspective id="perspective4665" inkscape:persp3d-origin="32 : 21.333333 : 1" inkscape:vp_x="0 : 32 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="64 : 32 : 1" sodipodi:type="inkscape:persp3d" style=""/> + <inkscape:perspective id="perspective4685" inkscape:persp3d-origin="27.5 : 18.333333 : 1" inkscape:vp_x="0 : 27.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="55 : 27.5 : 1" sodipodi:type="inkscape:persp3d" style=""/> + <inkscape:perspective id="perspective4712" inkscape:persp3d-origin="27.941999 : 18.408667 : 1" inkscape:vp_x="0 : 27.613001 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="55.883999 : 27.613001 : 1" sodipodi:type="inkscape:persp3d" style=""/> + <inkscape:perspective id="perspective4729" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" inkscape:vp_x="0 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="1 : 0.5 : 1" sodipodi:type="inkscape:persp3d" style=""/> + <inkscape:perspective id="perspective4778" inkscape:persp3d-origin="27.5 : 18.333333 : 1" inkscape:vp_x="0 : 27.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="55 : 27.5 : 1" sodipodi:type="inkscape:persp3d" style=""/> + <inkscape:perspective id="perspective4795" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" inkscape:vp_x="0 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="1 : 0.5 : 1" sodipodi:type="inkscape:persp3d" style=""/> + </defs> + <sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" inkscape:current-layer="layer1" inkscape:cx="22.090679" inkscape:cy="29.963115" inkscape:document-units="px" inkscape:grid-bbox="true" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="519" inkscape:window-maximized="1" inkscape:window-width="1024" inkscape:window-x="0" inkscape:window-y="27" inkscape:zoom="3.1536515" pagecolor="#ffffff" showgrid="true" style=""/> + <metadata id="metadata4662" style=""> + <rdf:RDF style=""> + <cc:Work rdf:about="" style=""> + <dc:format style="">image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" style=""/> + <dc:title style=""/> + </cc:Work> + </rdf:RDF> + </metadata> + <g id="layer5" inkscape:groupmode="layer" inkscape:label="Capa" style="display:inline"> + <g display="block" id="activity-journal" style="fill:&fill_color;;stroke:&stroke_color;;display:block" transform="translate(-6.1202847,5.0670211)"> + <path d="M 45.866,44.669 C 45.866,47.18 44.338,49 41.534,49 H 12.077 V 6 h 29.458 c 2.15,0 4.332,2.154 4.332,4.33 l -10e-4,34.339 0,0 z" id="path4762" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:3.50000000000000000;stroke-linecap:round;stroke-linejoin:round"/> + <line id="line4764" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:3.50000000000000000;stroke-linecap:round;stroke-linejoin:round" x1="21.341" x2="21.341" y1="6.1209998" y2="48.881001"/> + <path d="m 7.384,14.464 c 0,0 2.084,0.695 4.17,0.695 2.086,0 4.173,-0.695 4.173,-0.695" id="path4766" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:3.50000000000000000;stroke-linecap:round;stroke-linejoin:round"/> + <path d="m 7.384,28.021 c 0,0 1.912,0.695 4.345,0.695 2.433,0 3.999,-0.695 3.999,-0.695" id="path4768" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:3.50000000000000000;stroke-linecap:round;stroke-linejoin:round"/> + <path d="m 7.384,41.232 c 0,0 1.736,0.695 4.518,0.695 2.781,0 3.825,-0.695 3.825,-0.695" id="path4770" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:3.50000000000000000;stroke-linecap:round;stroke-linejoin:round"/> + </g> + </g> + <g id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1" style="display:inline"> + <g display="block" id="emblem-download-7" style="fill:&fill_color;;stroke:&stroke_color;;display:block" transform="matrix(0,0.38979726,-0.58747715,0,64.887812,29.222093)"> + <g id="Cursor_5_-5" style="fill:&fill_color;;stroke:&stroke_color;"> + <g id="g4698-7" style="fill:&fill_color;;stroke:&stroke_color;"> + <path d="m 45.553,21.607 c -1.548,0 -2.946,0.631 -3.96,1.643 L 33.544,31.3 33.543,7.507 C 33.539,6.079 32.994,4.643 31.903,3.548 29.712,1.363 26.165,1.363 23.981,3.548 22.884,4.644 22.342,6.077 22.339,7.509 L 22.337,31.298 14.29,23.25 c -1.012,-1.015 -2.413,-1.643 -3.96,-1.643 -3.094,-10e-4 -5.598,2.511 -5.6,5.603 -0.001,1.546 0.631,2.952 1.636,3.962 l 15.97,15.972 0,0 h 0 l 5.606,5.606 21.573,-21.579 c 1.01,-1.011 1.638,-2.411 1.641,-3.958 10e-4,-3.098 -2.508,-5.607 -5.603,-5.606 z" id="path4700-9" style="fill:&fill_color;;stroke:&stroke_color;"/> + </g> + <g id="g4702-6" style="fill:&fill_color;;stroke:&stroke_color;"> + <path d="m 45.553,21.607 c -1.548,0 -2.946,0.631 -3.96,1.643 L 33.544,31.3 33.543,7.507 C 33.539,6.079 32.994,4.643 31.903,3.548 29.712,1.363 26.165,1.363 23.981,3.548 22.884,4.644 22.342,6.077 22.339,7.509 L 22.337,31.298 14.29,23.25 c -1.012,-1.015 -2.413,-1.643 -3.96,-1.643 -3.094,-10e-4 -5.598,2.511 -5.6,5.603 -0.001,1.546 0.631,2.952 1.636,3.962 l 15.97,15.972 0,0 h 0 l 5.606,5.606 21.573,-21.579 c 1.01,-1.011 1.638,-2.411 1.641,-3.958 10e-4,-3.098 -2.508,-5.607 -5.603,-5.606 z" id="path4704-4" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:3.50000000000000000;stroke-linecap:round"/> + </g> + </g> + </g> + <g display="block" id="emblem-download-7-0" style="fill:&fill_color;;stroke:&stroke_color;;display:block" transform="matrix(0,0.38979726,-0.58747715,0,64.887812,9.9832824)"> + <g id="Cursor_5_-5-6" style="fill:&fill_color;;stroke:&stroke_color;"> + <g id="g4698-7-1" style="fill:&fill_color;;stroke:&stroke_color;"> + <path d="m 45.553,21.607 c -1.548,0 -2.946,0.631 -3.96,1.643 L 33.544,31.3 33.543,7.507 C 33.539,6.079 32.994,4.643 31.903,3.548 29.712,1.363 26.165,1.363 23.981,3.548 22.884,4.644 22.342,6.077 22.339,7.509 L 22.337,31.298 14.29,23.25 c -1.012,-1.015 -2.413,-1.643 -3.96,-1.643 -3.094,-10e-4 -5.598,2.511 -5.6,5.603 -0.001,1.546 0.631,2.952 1.636,3.962 l 15.97,15.972 0,0 h 0 l 5.606,5.606 21.573,-21.579 c 1.01,-1.011 1.638,-2.411 1.641,-3.958 10e-4,-3.098 -2.508,-5.607 -5.603,-5.606 z" id="path4700-9-0" style="fill:&fill_color;;stroke:&stroke_color;"/> + </g> + <g id="g4702-6-8" style="fill:&fill_color;;stroke:&stroke_color;"> + <path d="m 45.553,21.607 c -1.548,0 -2.946,0.631 -3.96,1.643 L 33.544,31.3 33.543,7.507 C 33.539,6.079 32.994,4.643 31.903,3.548 29.712,1.363 26.165,1.363 23.981,3.548 22.884,4.644 22.342,6.077 22.339,7.509 L 22.337,31.298 14.29,23.25 c -1.012,-1.015 -2.413,-1.643 -3.96,-1.643 -3.094,-10e-4 -5.598,2.511 -5.6,5.603 -0.001,1.546 0.631,2.952 1.636,3.962 l 15.97,15.972 0,0 h 0 l 5.606,5.606 21.573,-21.579 c 1.01,-1.011 1.638,-2.411 1.641,-3.958 10e-4,-3.098 -2.508,-5.607 -5.603,-5.606 z" id="path4704-4-4" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:3.50000000000000000;stroke-linecap:round"/> + </g> + </g> + </g> + <text id="text4828" style="font-size:10px;font-style:normal;font-weight:bold;fill:&stroke_color;;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Andale Mono Bold" x="21.562305" xml:space="preserve" y="22.777945"><tspan id="tspan4830" sodipodi:role="line" style="fill:&stroke_color;;stroke:none" x="21.562305" y="22.777945">Z</tspan><tspan id="tspan4832" sodipodi:role="line" style="fill:&stroke_color;;stroke:none" x="21.562305" y="35.277946">I</tspan><tspan id="tspan4834" sodipodi:role="line" style="fill:&stroke_color;;stroke:none" x="21.562305" y="47.777946">P</tspan></text> + </g> +</svg>
\ No newline at end of file diff --git a/activity/activity.info b/activity/activity.info new file mode 100644 index 0000000..d679918 --- /dev/null +++ b/activity/activity.info @@ -0,0 +1,8 @@ +[Activity] +name= Compress +activity_version = 14 +show_launcher = 1 +bundle_id = org.CeibalJAM.Compress +exec = sugar-activity Compress.Compress -s +icon = Compress +license = GPLv3+ diff --git a/icons/Abrir.svg b/icons/Abrir.svg new file mode 100644 index 0000000..4b9a417 --- /dev/null +++ b/icons/Abrir.svg @@ -0,0 +1,107 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + height="64px" + id="svg8341" + inkscape:version="0.47 r22583" + sodipodi:docname="Abrir.svg" + version="1.1" + width="64px"> + <defs + id="defs8343"> + <inkscape:perspective + id="perspective8349" + inkscape:persp3d-origin="32 : 21.333333 : 1" + inkscape:vp_x="0 : 32 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="64 : 32 : 1" + sodipodi:type="inkscape:persp3d" /> + <inkscape:perspective + id="perspective8330" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_x="0 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="1 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + </defs> + <sodipodi:namedview + bordercolor="#666666" + borderopacity="1.0" + id="base" + inkscape:current-layer="layer1" + inkscape:cx="-63.272727" + inkscape:cy="32" + inkscape:document-units="px" + inkscape:grid-bbox="true" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:window-height="808" + inkscape:window-maximized="1" + inkscape:window-width="1200" + inkscape:window-x="0" + inkscape:window-y="30" + inkscape:zoom="2.75" + pagecolor="#ffffff" + showgrid="true" /> + <metadata + id="metadata8346"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:groupmode="layer" + inkscape:label="Layer 1"> + <g + id="g3663" + style="fill:#ffffff;stroke:#000000;stroke-width:4.35602989;stroke-miterlimit:4;stroke-dasharray:none" + transform="matrix(1.3553626,0,0,1.3553626,-0.42751947,4.610779)"> + <g + id="layer1-6" + inkscape:label="pixmap" + style="fill:#ffffff;stroke:#000000;stroke-width:4.35602989;stroke-miterlimit:4;stroke-dasharray:none;display:inline" /> + <g + id="layer2" + inkscape:label="vectors" + style="fill:#ffffff;stroke:#000000;stroke-width:4.35602989;stroke-miterlimit:4;stroke-dasharray:none;display:inline"> + <g + id="g1197" + inkscape:r_cx="true" + inkscape:r_cy="true" + style="fill:#ffffff;stroke:#000000;stroke-width:19.69499015;stroke-miterlimit:4;stroke-dasharray:none" + transform="matrix(0.216083,0,0,0.226386,-1.393233,-2.889517)" /> + <path + d="m 5.6160592,4.6665304 c -0.464977,0 -0.815111,0.2352268 -0.815111,0.726723 l 0,33.0209616 c 0,0.727146 0.487105,1.21156 1.149057,1.21156 l 37.7369538,0 c 0.665802,0 0.930308,-0.452766 0.930308,-1.08656 l 0,-28.9028822 c 0,-0.542965 -0.400287,-0.836558 -0.899058,-0.836558 l -19.109324,0 c -0.337013,0 -0.69668,-0.198426 -0.894481,-0.471287 L 21.112173,5.1284784 c -0.217865,-0.300539 -0.642075,-0.461933 -1.013278,-0.461933 l -14.4828358,-1.5e-5 z" + id="path895" + sodipodi:nodetypes="ccccccccccccc" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.35602989;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> + <g + id="g891" + style="fill:#ffffff;stroke:#000000;stroke-width:23.33133314;stroke-miterlimit:4;stroke-dasharray:none" + transform="matrix(0.186703,0,0,0.186703,-21.1073,57.62299)" /> + <path + d="m 4.5318272,21.348802 9.9022098,0 c 0.73882,0 1.3626,-0.32487 1.68054,-0.75244 0.13621,-0.183169 1.26301,-1.50364 1.35235,-1.614968 0.29761,-0.370864 0.76988,-0.647433 1.33671,-0.647433 l 25.701781,0 c 1.00281,0 1.50548,0.551272 1.44347,1.231431 l -1.6875,18.510483 c -0.0984,1.079706 -0.70629,1.258089 -1.50597,1.258089 l -37.7760108,0 c -0.79969,0 -1.36827,-0.552195 -1.44348,-1.23143 l -1.625,-14.675898 c -0.1535,-1.386364 0.94834,-2.077834 2.6209,-2.077834 z" + id="rect337" + inkscape:r_cx="true" + inkscape:r_cy="true" + sodipodi:nodetypes="czzszssssssss" + style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.35602989;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" /> + </g> + </g> + </g> +</svg> diff --git a/icons/Archivo.svg b/icons/Archivo.svg new file mode 100644 index 0000000..a724766 --- /dev/null +++ b/icons/Archivo.svg @@ -0,0 +1,25 @@ +<?xml version="1.0" ?> +<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' + 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [ + <!ENTITY stroke_color "#010101"> + <!ENTITY fill_color "#FFFFFF"> + ]> + +<svg enable-background="new 0 0 55 55" height="55px" version="1.1" + viewBox="0 0 55 55" width="55px" x="0px" xml:space="preserve" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" y="0px"> + + <g display="block" id="activity-write"> + <g display="inline"> + <g> + <path + d="M 43.82,6.088 L 22.876,6.088 L 10.932,18.027 L + 10.932,48.914 L 43.819,48.914 L 43.82,6.088 z" + fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5" /> + </g> + <polyline fill="none" points="10.932,18.027 22.876,18.027 22.876,6.088" + stroke="&stroke_color;" stroke-width="3.5"/> + </g> + </g> +</svg> diff --git a/icons/Compress.svg b/icons/Compress.svg new file mode 100644 index 0000000..38b475f --- /dev/null +++ b/icons/Compress.svg @@ -0,0 +1,55 @@ +<?xml version="1.0" ?><!-- Created with Inkscape (http://www.inkscape.org/) --><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [ + <!ENTITY stroke_color "#000000"> + <!ENTITY fill_color "#ffffff"> +]><svg height="64px" id="svg4657" inkscape:version="0.47 r22583" sodipodi:docname="Compress.svg" style="" version="1.1" width="64px" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"> + <defs id="defs4659" style=""> + <inkscape:perspective id="perspective4665" inkscape:persp3d-origin="32 : 21.333333 : 1" inkscape:vp_x="0 : 32 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="64 : 32 : 1" sodipodi:type="inkscape:persp3d" style=""/> + <inkscape:perspective id="perspective4685" inkscape:persp3d-origin="27.5 : 18.333333 : 1" inkscape:vp_x="0 : 27.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="55 : 27.5 : 1" sodipodi:type="inkscape:persp3d" style=""/> + <inkscape:perspective id="perspective4712" inkscape:persp3d-origin="27.941999 : 18.408667 : 1" inkscape:vp_x="0 : 27.613001 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="55.883999 : 27.613001 : 1" sodipodi:type="inkscape:persp3d" style=""/> + <inkscape:perspective id="perspective4729" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" inkscape:vp_x="0 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="1 : 0.5 : 1" sodipodi:type="inkscape:persp3d" style=""/> + <inkscape:perspective id="perspective4778" inkscape:persp3d-origin="27.5 : 18.333333 : 1" inkscape:vp_x="0 : 27.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="55 : 27.5 : 1" sodipodi:type="inkscape:persp3d" style=""/> + <inkscape:perspective id="perspective4795" inkscape:persp3d-origin="0.5 : 0.33333333 : 1" inkscape:vp_x="0 : 0.5 : 1" inkscape:vp_y="0 : 1000 : 0" inkscape:vp_z="1 : 0.5 : 1" sodipodi:type="inkscape:persp3d" style=""/> + </defs> + <sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" inkscape:current-layer="layer1" inkscape:cx="22.090679" inkscape:cy="29.963115" inkscape:document-units="px" inkscape:grid-bbox="true" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="519" inkscape:window-maximized="1" inkscape:window-width="1024" inkscape:window-x="0" inkscape:window-y="27" inkscape:zoom="3.1536515" pagecolor="#ffffff" showgrid="true" style=""/> + <metadata id="metadata4662" style=""> + <rdf:RDF style=""> + <cc:Work rdf:about="" style=""> + <dc:format style="">image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" style=""/> + <dc:title style=""/> + </cc:Work> + </rdf:RDF> + </metadata> + <g id="layer5" inkscape:groupmode="layer" inkscape:label="Capa" style="display:inline"> + <g display="block" id="activity-journal" style="fill:&fill_color;;stroke:&stroke_color;;display:block" transform="translate(-6.1202847,5.0670211)"> + <path d="M 45.866,44.669 C 45.866,47.18 44.338,49 41.534,49 H 12.077 V 6 h 29.458 c 2.15,0 4.332,2.154 4.332,4.33 l -10e-4,34.339 0,0 z" id="path4762" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:3.50000000000000000;stroke-linecap:round;stroke-linejoin:round"/> + <line id="line4764" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:3.50000000000000000;stroke-linecap:round;stroke-linejoin:round" x1="21.341" x2="21.341" y1="6.1209998" y2="48.881001"/> + <path d="m 7.384,14.464 c 0,0 2.084,0.695 4.17,0.695 2.086,0 4.173,-0.695 4.173,-0.695" id="path4766" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:3.50000000000000000;stroke-linecap:round;stroke-linejoin:round"/> + <path d="m 7.384,28.021 c 0,0 1.912,0.695 4.345,0.695 2.433,0 3.999,-0.695 3.999,-0.695" id="path4768" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:3.50000000000000000;stroke-linecap:round;stroke-linejoin:round"/> + <path d="m 7.384,41.232 c 0,0 1.736,0.695 4.518,0.695 2.781,0 3.825,-0.695 3.825,-0.695" id="path4770" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:3.50000000000000000;stroke-linecap:round;stroke-linejoin:round"/> + </g> + </g> + <g id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1" style="display:inline"> + <g display="block" id="emblem-download-7" style="fill:&fill_color;;stroke:&stroke_color;;display:block" transform="matrix(0,0.38979726,-0.58747715,0,64.887812,29.222093)"> + <g id="Cursor_5_-5" style="fill:&fill_color;;stroke:&stroke_color;"> + <g id="g4698-7" style="fill:&fill_color;;stroke:&stroke_color;"> + <path d="m 45.553,21.607 c -1.548,0 -2.946,0.631 -3.96,1.643 L 33.544,31.3 33.543,7.507 C 33.539,6.079 32.994,4.643 31.903,3.548 29.712,1.363 26.165,1.363 23.981,3.548 22.884,4.644 22.342,6.077 22.339,7.509 L 22.337,31.298 14.29,23.25 c -1.012,-1.015 -2.413,-1.643 -3.96,-1.643 -3.094,-10e-4 -5.598,2.511 -5.6,5.603 -0.001,1.546 0.631,2.952 1.636,3.962 l 15.97,15.972 0,0 h 0 l 5.606,5.606 21.573,-21.579 c 1.01,-1.011 1.638,-2.411 1.641,-3.958 10e-4,-3.098 -2.508,-5.607 -5.603,-5.606 z" id="path4700-9" style="fill:&fill_color;;stroke:&stroke_color;"/> + </g> + <g id="g4702-6" style="fill:&fill_color;;stroke:&stroke_color;"> + <path d="m 45.553,21.607 c -1.548,0 -2.946,0.631 -3.96,1.643 L 33.544,31.3 33.543,7.507 C 33.539,6.079 32.994,4.643 31.903,3.548 29.712,1.363 26.165,1.363 23.981,3.548 22.884,4.644 22.342,6.077 22.339,7.509 L 22.337,31.298 14.29,23.25 c -1.012,-1.015 -2.413,-1.643 -3.96,-1.643 -3.094,-10e-4 -5.598,2.511 -5.6,5.603 -0.001,1.546 0.631,2.952 1.636,3.962 l 15.97,15.972 0,0 h 0 l 5.606,5.606 21.573,-21.579 c 1.01,-1.011 1.638,-2.411 1.641,-3.958 10e-4,-3.098 -2.508,-5.607 -5.603,-5.606 z" id="path4704-4" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:3.50000000000000000;stroke-linecap:round"/> + </g> + </g> + </g> + <g display="block" id="emblem-download-7-0" style="fill:&fill_color;;stroke:&stroke_color;;display:block" transform="matrix(0,0.38979726,-0.58747715,0,64.887812,9.9832824)"> + <g id="Cursor_5_-5-6" style="fill:&fill_color;;stroke:&stroke_color;"> + <g id="g4698-7-1" style="fill:&fill_color;;stroke:&stroke_color;"> + <path d="m 45.553,21.607 c -1.548,0 -2.946,0.631 -3.96,1.643 L 33.544,31.3 33.543,7.507 C 33.539,6.079 32.994,4.643 31.903,3.548 29.712,1.363 26.165,1.363 23.981,3.548 22.884,4.644 22.342,6.077 22.339,7.509 L 22.337,31.298 14.29,23.25 c -1.012,-1.015 -2.413,-1.643 -3.96,-1.643 -3.094,-10e-4 -5.598,2.511 -5.6,5.603 -0.001,1.546 0.631,2.952 1.636,3.962 l 15.97,15.972 0,0 h 0 l 5.606,5.606 21.573,-21.579 c 1.01,-1.011 1.638,-2.411 1.641,-3.958 10e-4,-3.098 -2.508,-5.607 -5.603,-5.606 z" id="path4700-9-0" style="fill:&fill_color;;stroke:&stroke_color;"/> + </g> + <g id="g4702-6-8" style="fill:&fill_color;;stroke:&stroke_color;"> + <path d="m 45.553,21.607 c -1.548,0 -2.946,0.631 -3.96,1.643 L 33.544,31.3 33.543,7.507 C 33.539,6.079 32.994,4.643 31.903,3.548 29.712,1.363 26.165,1.363 23.981,3.548 22.884,4.644 22.342,6.077 22.339,7.509 L 22.337,31.298 14.29,23.25 c -1.012,-1.015 -2.413,-1.643 -3.96,-1.643 -3.094,-10e-4 -5.598,2.511 -5.6,5.603 -0.001,1.546 0.631,2.952 1.636,3.962 l 15.97,15.972 0,0 h 0 l 5.606,5.606 21.573,-21.579 c 1.01,-1.011 1.638,-2.411 1.641,-3.958 10e-4,-3.098 -2.508,-5.607 -5.603,-5.606 z" id="path4704-4-4" style="fill:&fill_color;;stroke:&stroke_color;;stroke-width:3.50000000000000000;stroke-linecap:round"/> + </g> + </g> + </g> + <text id="text4828" style="font-size:10px;font-style:normal;font-weight:bold;fill:&stroke_color;;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;-inkscape-font-specification:Andale Mono Bold" x="21.562305" xml:space="preserve" y="22.777945"><tspan id="tspan4830" sodipodi:role="line" style="fill:&stroke_color;;stroke:none" x="21.562305" y="22.777945">Z</tspan><tspan id="tspan4832" sodipodi:role="line" style="fill:&stroke_color;;stroke:none" x="21.562305" y="35.277946">I</tspan><tspan id="tspan4834" sodipodi:role="line" style="fill:&stroke_color;;stroke:none" x="21.562305" y="47.777946">P</tspan></text> + </g> +</svg>
\ No newline at end of file diff --git a/icons/audio.svg b/icons/audio.svg new file mode 100644 index 0000000..489989d --- /dev/null +++ b/icons/audio.svg @@ -0,0 +1,17 @@ +<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [ + <!ENTITY stroke_color "#010101"> + <!ENTITY fill_color "#666666"> +]><svg enable-background="new 0 0 58.5 55" height="55px" version="1.1" viewBox="0 0 58.5 55" width="58.5px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px"><g display="block" id="transfer-from-audio"> + <g display="inline"> + <polygon fill="&fill_color;" points="50.056,32.715 50.056,2 8.433,2 8.433,32.715 1.75,34.542 29.252,52.581 56.75,34.543 " stroke="&stroke_color;" stroke-linejoin="round" stroke-width="3.5"/> + </g> + <g display="inline"> + <g> + <polygon fill="#ffffff" points="18.435,10.583 32.046,10.583 39.811,18.343 39.811,38.42 18.435,38.42 " stroke="&fill_color;" stroke-width="2.275"/> + <polyline fill="none" points="39.811,18.343 32.046,18.343 32.046,10.583 " stroke="&fill_color;" stroke-width="2.275"/> + </g> + </g> + <path d="M29.74,32.428 c-0.332-0.946-2.086-0.697-2.866-0.045c-1.56,1.306-0.275,2.857,1.511,2.131C29.401,34.098,30.072,33.377,29.74,32.428z" display="inline" fill="&fill_color;" stroke="&fill_color;" stroke-width="2.275"/> + <line display="inline" fill="none" stroke="&fill_color;" stroke-width="1.4625" x1="30.141" x2="30.141" y1="32.499" y2="24.154"/> + <polygon display="inline" fill="&fill_color;" points="34.109,22.899 29.424,25.212 29.424,22.698 34.109,20.383 "/> +</g></svg> diff --git a/icons/ceibaljam.png b/icons/ceibaljam.png Binary files differnew file mode 100644 index 0000000..1ee0139 --- /dev/null +++ b/icons/ceibaljam.png diff --git a/icons/ceibaljam.svg b/icons/ceibaljam.svg new file mode 100644 index 0000000..4f7c410 --- /dev/null +++ b/icons/ceibaljam.svg @@ -0,0 +1,212 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="250" + height="79" + id="svg5091" + version="1.1" + inkscape:version="0.47 r22583" + sodipodi:docname="ceibaljam.svg"> + <title + id="title5172">Isologotipo</title> + <defs + id="defs5093"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + id="perspective5099" /> + <inkscape:perspective + id="perspective5055" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.4" + inkscape:cx="110.60101" + inkscape:cy="48.580963" + inkscape:document-units="px" + inkscape:current-layer="layer_isologotipo" + showgrid="false" + inkscape:window-width="1904" + inkscape:window-height="636" + inkscape:window-x="-9" + inkscape:window-y="0" + inkscape:window-maximized="0" /> + <metadata + id="metadata5096"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>Isologotipo</dc:title> + <dc:creator> + <cc:Agent> + <dc:title>Alejandro Rodriguez Juele</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>ceibalJAM</dc:title> + </cc:Agent> + </dc:rights> + <dc:identifier>org.ceibaljam.isologotipo</dc:identifier> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="isologotipo" + inkscape:groupmode="layer" + id="layer_isologotipo" + transform="translate(2.6118337e-6,-973.36216)"> + <g + transform="matrix(0.75131837,0,0,-0.75131837,-475.63736,1125.3802)" + id="terron"> + <g + transform="translate(704.4243,105.6064)" + id="g308"> + <path + id="cuerpo" + style="fill:#33b540;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c 0,0 -0.99,0.003 -1.919,0.004 0,3.6 0.009,14.962 0.011,17.995 0,0.004 10e-4,0.008 10e-4,0.012 l 0,33.828 c 0,0.015 -0.002,0.028 -0.002,0.043 l -0.02,20.567 c -0.011,2.332 -1.907,4.212 -4.227,4.202 -1.126,-0.005 -2.185,-0.446 -2.975,-1.246 -0.791,-0.801 -1.225,-1.861 -1.219,-2.987 0,-0.237 0.005,-6.784 0.009,-12.298 l -33.676,0 c -4.574,0 -8.28,-3.708 -8.28,-8.281 l 0,-4.571 -14.856,-0.014 c -2.332,-0.012 -4.209,-1.908 -4.201,-4.229 0.003,-1.124 0.449,-2.183 1.249,-2.976 0.799,-0.789 1.859,-1.223 2.984,-1.216 0.244,0 9.025,0.006 14.824,0.01 l 0,-19.995 c -0.001,-0.036 -0.01,-0.071 -0.01,-0.107 0,-0.306 0.011,-14.614 0.014,-18.737 C -53.222,0.003 -54.211,0 -54.211,0 c -2.373,-0.046 -4.224,-1.973 -4.18,-4.291 0.048,-2.323 1.974,-4.176 4.296,-4.128 l 6.054,0.008 c 2.371,0.043 4.222,1.968 4.176,4.29 l -0.012,13.85 33.539,0 -0.012,-13.85 c -0.046,-2.322 1.809,-4.247 4.177,-4.29 l 6.055,-0.008 C 2.202,-8.467 4.13,-6.614 4.177,-4.291 4.222,-1.973 2.371,-0.046 0,0" /> + </g> + <g + transform="translate(671.1978,150.001)" + id="g312"> + <path + id="ojo_izq" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c 0.222,-1.563 -0.865,-3.009 -2.427,-3.23 -1.559,-0.222 -3.005,0.865 -3.228,2.425 -0.221,1.562 0.864,3.008 2.427,3.228 C -1.666,2.646 -0.221,1.56 0,0" /> + </g> + <g + transform="translate(686.0581,152.1084)" + id="g316"> + <path + id="ojo_der" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c 0.222,-1.562 -0.866,-3.007 -2.427,-3.229 -1.562,-0.222 -3.006,0.865 -3.23,2.427 -0.22,1.56 0.867,3.007 2.427,3.227 C -1.667,2.647 -0.222,1.561 0,0" /> + </g> + <g + transform="translate(689.3911,140.6904)" + id="g320"> + <path + id="boca" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c 1.399,-8.942 -9.674,-18.043 -17.648,-12.363 -2.683,1.911 -6.94,7.251 -5.409,10.884 0.539,1.277 1.731,0.486 3.024,-0.169 3.092,-1.571 6.768,-1.776 10.066,-0.782 1.68,0.507 3.115,1.325 4.48,2.42 0.83,0.669 3.097,3.333 4.345,2.126 C -0.168,1.175 0,0.004 0,0" /> + </g> + <g + transform="translate(647.6968,191.7734)" + id="g324"> + <path + id="pelo_claro" + style="fill:#33b540;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c 4.563,7.816 18.894,7.876 21.489,-1.564 0.873,-3.173 0.799,-10.005 -2.682,-11.855 -1.222,-0.649 -1.647,0.718 -2.236,2.044 -1.406,3.168 -4.127,5.651 -7.313,6.962 C 7.64,-3.744 6.007,-3.472 4.259,-3.461 3.193,-3.454 -0.246,-4.088 -0.454,-2.362 -0.614,-1.021 -0.004,-0.003 0,0" /> + </g> + <g + transform="translate(680.9731,172.3496)" + id="g328"> + <path + id="pelo_oscuro" + style="fill:#b92635;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 0,0 C -10.007,8.159 -6.93,28.366 6.946,29.94 11.615,30.47 21.224,28.858 23.06,23.544 23.706,21.679 21.688,21.381 19.688,20.843 14.912,19.562 10.813,16.275 8.261,12.077 6.961,9.939 6.219,7.703 5.813,5.241 5.569,3.741 5.703,-1.25 3.227,-1.158 1.301,-1.088 0.003,-0.002 0,0" /> + </g> + </g> + <g + transform="matrix(1.7849874,0,0,-1.7849889,-1193.7402,1243.0523)" + id="logotipo"> + <g + transform="translate(718.2769,124.5498)" + id="g332"> + <path + id="path334" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 0,-1.263 c -0.968,1.024 -2.108,1.534 -3.428,1.534 -1.121,0 -2.071,-0.409 -2.848,-1.23 -0.781,-0.817 -1.169,-1.785 -1.169,-2.895 0,-1.112 0.385,-2.085 1.159,-2.918 0.769,-0.833 1.716,-1.252 2.839,-1.252 1.429,0 2.622,0.568 3.575,1.702 l 0,-1.282 c -1.027,-0.897 -2.208,-1.344 -3.543,-1.344 -1.433,0 -2.624,0.491 -3.572,1.471 -0.951,0.983 -1.423,2.191 -1.423,3.623 0,1.416 0.479,2.615 1.442,3.589 0.963,0.974 2.155,1.463 3.574,1.463 1.323,0 2.455,-0.4 3.394,-1.198" /> + </g> + <g + transform="translate(720.8501,121.5215)" + id="g336"> + <path + id="path338" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 0,0 7.487,0 C 7.362,0.9 6.969,1.665 6.31,2.296 5.594,2.965 4.752,3.299 3.784,3.299 2.803,3.299 1.948,2.976 1.217,2.326 0.488,1.676 0.08,0.9 0,0 m 8.454,-0.929 -8.454,0 c -0.031,-1.195 0.327,-2.173 1.069,-2.93 0.744,-0.756 1.684,-1.137 2.822,-1.137 1.5,0 2.644,0.724 3.427,2.164 L 8.12,-3.294 C 7.189,-5.045 5.735,-5.92 3.756,-5.92 c -1.406,0 -2.552,0.504 -3.439,1.517 -0.856,0.965 -1.287,2.16 -1.287,3.577 0,1.401 0.432,2.582 1.29,3.536 0.902,1.011 2.049,1.517 3.446,1.517 1.433,0 2.589,-0.513 3.462,-1.536 0.832,-0.969 1.24,-2.172 1.226,-3.62" /> + </g> + <path + id="path340" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 732.889,115.801 -0.968,0 0,9.746 0.968,0 0,-9.746 z m -0.464,13.851 c 0.24,0 0.444,-0.086 0.614,-0.254 0.167,-0.168 0.252,-0.372 0.252,-0.611 0,-0.24 -0.085,-0.442 -0.252,-0.615 -0.17,-0.167 -0.374,-0.25 -0.614,-0.25 -0.238,0 -0.444,0.083 -0.613,0.25 -0.167,0.173 -0.252,0.375 -0.252,0.615 0,0.239 0.085,0.443 0.252,0.611 0.169,0.168 0.375,0.254 0.613,0.254" /> + <g + transform="translate(741.2251,116.5254)" + id="g342"> + <path + id="path344" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c 1.153,0 2.091,0.426 2.811,1.271 0.686,0.807 1.033,1.788 1.033,2.94 0,1.098 -0.36,2.052 -1.078,2.868 -0.717,0.811 -1.627,1.216 -2.724,1.216 -1.197,0 -2.146,-0.39 -2.843,-1.166 -0.696,-0.778 -1.044,-1.757 -1.044,-2.94 0,-1.164 0.338,-2.146 1.012,-2.936 C -2.112,0.419 -1.168,0 0,0 m -4.732,-0.725 0,17.395 0.965,0 0,-9.34 c 0.866,1.26 2.124,1.893 3.781,1.893 1.44,0 2.602,-0.474 3.479,-1.422 C 4.372,6.853 4.812,5.656 4.812,4.211 4.812,2.753 4.38,1.537 3.517,0.571 2.609,-0.427 1.428,-0.924 -0.029,-0.924 c -0.751,0 -1.472,0.173 -2.166,0.522 -0.695,0.351 -1.216,0.828 -1.572,1.428 l 0,-1.751 -0.965,0 z" /> + </g> + <g + transform="translate(752.145,124.8203)" + id="g346"> + <path + id="path348" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c -1.078,0 -1.979,-0.408 -2.691,-1.229 -0.716,-0.818 -1.074,-1.772 -1.074,-2.855 0,-1.152 0.343,-2.133 1.029,-2.939 0.73,-0.846 1.663,-1.272 2.799,-1.272 1.193,0 2.14,0.431 2.841,1.293 0.658,0.792 0.988,1.801 0.988,3.023 0,1.138 -0.36,2.086 -1.074,2.843 C 2.104,-0.379 1.166,0 0,0 m 4.812,0.727 0,-9.747 -0.967,0 0,1.751 C 3.493,-7.869 2.968,-8.346 2.273,-8.697 1.581,-9.046 0.859,-9.219 0.109,-9.219 c -1.459,0 -2.63,0.491 -3.513,1.472 -0.885,0.982 -1.328,2.205 -1.328,3.663 0,1.445 0.439,2.642 1.318,3.59 0.877,0.948 2.036,1.422 3.481,1.422 1.656,0 2.913,-0.633 3.778,-1.893 l 0,1.692 0.967,0 z" /> + </g> + <path + id="path350" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 761.073,115.801 -0.967,0 0,17.395 0.967,0 0,-17.395 z" /> + <g + transform="translate(767.4019,121.4551)" + id="g352"> + <path + id="path354" + style="fill:#b92635;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 0,0 0,7.096 C 0,7.913 0.14,8.521 0.421,8.924 0.703,9.326 1.135,9.527 1.71,9.527 2.28,9.527 2.709,9.326 2.994,8.924 3.28,8.521 3.423,7.913 3.423,7.096 l 0,-8.198 C 3.423,-2.728 3.05,-3.961 2.305,-4.8 1.559,-5.637 0.466,-6.054 -0.968,-6.054 c -1.12,0 -2.051,0.237 -2.792,0.71 -0.742,0.476 -1.113,1.058 -1.113,1.746 0,0.457 0.147,0.835 0.438,1.127 0.291,0.294 0.671,0.443 1.139,0.443 0.295,0 0.676,-0.123 1.145,-0.363 0.464,-0.241 0.807,-0.363 1.027,-0.363 0.405,0 0.693,0.196 0.866,0.591 C -0.087,-1.767 0,-1.047 0,0" /> + </g> + <g + transform="translate(776.8813,121.7607)" + id="g356"> + <path + id="path358" + style="fill:#b92635;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 0,0 3.58,0 1.851,5.576 0,0 z m -0.966,-3.142 -0.513,-1.511 c -0.167,-0.503 -0.387,-0.886 -0.664,-1.15 -0.279,-0.264 -0.603,-0.396 -0.971,-0.396 -0.476,0 -0.865,0.156 -1.17,0.469 -0.304,0.312 -0.457,0.706 -0.457,1.179 0,0.192 0.014,0.372 0.042,0.536 0.026,0.163 0.067,0.315 0.122,0.454 l 3.899,10.602 c 0.281,0.765 0.632,1.325 1.053,1.685 0.422,0.355 0.942,0.536 1.561,0.536 0.581,0 1.087,-0.171 1.516,-0.513 C 3.881,8.407 4.211,7.917 4.445,7.269 L 8.24,-3.512 C 8.314,-3.74 8.371,-3.942 8.409,-4.12 8.446,-4.298 8.466,-4.457 8.466,-4.593 8.466,-5.066 8.31,-5.454 7.994,-5.753 7.677,-6.05 7.271,-6.199 6.778,-6.199 c -0.438,0 -0.804,0.137 -1.095,0.411 -0.291,0.273 -0.522,0.695 -0.694,1.259 l -0.42,1.387 -5.535,0 z" /> + </g> + <g + transform="translate(785.7632,118.4199)" + id="g360"> + <path + id="path362" + style="fill:#b92635;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 1.83,10.216 c 0.151,0.844 0.409,1.445 0.766,1.806 0.362,0.359 0.879,0.541 1.551,0.541 0.639,0 1.151,-0.17 1.542,-0.504 0.392,-0.337 0.672,-0.844 0.845,-1.525 l 2.276,-8.953 2.128,8.974 c 0.159,0.667 0.432,1.167 0.822,1.504 0.393,0.334 0.897,0.504 1.512,0.504 0.707,0 1.25,-0.192 1.627,-0.574 0.376,-0.38 0.639,-1.012 0.783,-1.897 l 1.667,-10.309 c 0.028,-0.149 0.048,-0.297 0.06,-0.435 0.015,-0.141 0.022,-0.267 0.022,-0.377 0,-0.548 -0.157,-0.985 -0.475,-1.305 -0.313,-0.324 -0.731,-0.484 -1.255,-0.484 -0.479,0 -0.859,0.165 -1.141,0.493 -0.282,0.329 -0.463,0.83 -0.545,1.502 L 12.934,8.13 C 12.104,4.549 11.488,2.017 11.087,0.536 10.686,-0.946 10.374,-1.861 10.155,-2.213 10.02,-2.432 9.838,-2.588 9.616,-2.681 9.392,-2.772 9.097,-2.818 8.726,-2.818 c -0.578,0 -1.015,0.13 -1.316,0.39 -0.304,0.261 -0.532,0.704 -0.691,1.326 L 4.506,8.13 3.333,-0.607 C 3.223,-1.382 3.024,-1.945 2.737,-2.295 2.449,-2.646 2.05,-2.818 1.545,-2.818 c -0.502,0 -0.906,0.16 -1.212,0.484 -0.305,0.32 -0.458,0.757 -0.458,1.305 0,0.13 0.011,0.282 0.033,0.459 0.018,0.175 0.05,0.364 0.092,0.57" /> + </g> + <g + transform="translate(808.2749,122.6221)" + id="g364"> + <path + id="path366" + style="fill:#b92635;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c 0,-0.823 -0.136,-1.436 -0.407,-1.836 -0.271,-0.397 -0.685,-0.596 -1.239,-0.596 -0.55,0 -0.963,0.202 -1.237,0.605 -0.274,0.398 -0.411,1.009 -0.411,1.827 l 0,6.2 c 0,0.806 0.137,1.407 0.411,1.803 0.274,0.399 0.687,0.599 1.237,0.599 0.554,0 0.968,-0.199 1.239,-0.593 C -0.136,7.613 0,7.013 0,6.2 L 0,0 z m -3.479,-5.4 c 0,0.517 0.178,0.954 0.536,1.31 0.357,0.353 0.788,0.532 1.297,0.532 0.506,0 0.939,-0.179 1.295,-0.538 0.357,-0.358 0.538,-0.792 0.538,-1.304 0,-0.511 -0.183,-0.95 -0.542,-1.316 -0.362,-0.362 -0.791,-0.546 -1.291,-0.546 -0.509,0 -0.94,0.18 -1.297,0.543 -0.358,0.361 -0.536,0.8 -0.536,1.319" /> + </g> + </g> + </g> +</svg> diff --git a/icons/ceibaljam_chico.svg b/icons/ceibaljam_chico.svg new file mode 100644 index 0000000..58cb0bf --- /dev/null +++ b/icons/ceibaljam_chico.svg @@ -0,0 +1,228 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="163.8" + height="45.5" + id="svg5091" + version="1.1" + inkscape:version="0.48.3.1 r9886" + sodipodi:docname="ceibaljam_chico.svg"> + <title + id="title5172">Isologotipo</title> + <defs + id="defs5093"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + id="perspective5099" /> + <inkscape:perspective + id="perspective5055" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="2.8284271" + inkscape:cx="110.60101" + inkscape:cy="48.580963" + inkscape:document-units="px" + inkscape:current-layer="layer_isologotipo" + showgrid="false" + inkscape:window-width="1022" + inkscape:window-height="510" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="0" /> + <metadata + id="metadata5096"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>Isologotipo</dc:title> + <dc:creator> + <cc:Agent> + <dc:title>Alejandro Rodriguez Juele</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>ceibalJAM</dc:title> + </cc:Agent> + </dc:rights> + <dc:identifier>org.ceibaljam.isologotipo</dc:identifier> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="isologotipo" + inkscape:groupmode="layer" + id="layer_isologotipo" + transform="translate(2.6118337e-6,-1006.8622)"> + <g + transform="matrix(0.43219167,0,0,-0.43219167,-272.6077,1094.3654)" + id="terron"> + <g + transform="translate(704.4243,105.6064)" + id="g308"> + <path + id="cuerpo" + style="fill:#33b540;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c 0,0 -0.99,0.003 -1.919,0.004 0,3.6 0.009,14.962 0.011,17.995 0,0.004 10e-4,0.008 10e-4,0.012 l 0,33.828 c 0,0.015 -0.002,0.028 -0.002,0.043 l -0.02,20.567 c -0.011,2.332 -1.907,4.212 -4.227,4.202 -1.126,-0.005 -2.185,-0.446 -2.975,-1.246 -0.791,-0.801 -1.225,-1.861 -1.219,-2.987 0,-0.237 0.005,-6.784 0.009,-12.298 l -33.676,0 c -4.574,0 -8.28,-3.708 -8.28,-8.281 l 0,-4.571 -14.856,-0.014 c -2.332,-0.012 -4.209,-1.908 -4.201,-4.229 0.003,-1.124 0.449,-2.183 1.249,-2.976 0.799,-0.789 1.859,-1.223 2.984,-1.216 0.244,0 9.025,0.006 14.824,0.01 l 0,-19.995 c -0.001,-0.036 -0.01,-0.071 -0.01,-0.107 0,-0.306 0.011,-14.614 0.014,-18.737 C -53.222,0.003 -54.211,0 -54.211,0 c -2.373,-0.046 -4.224,-1.973 -4.18,-4.291 0.048,-2.323 1.974,-4.176 4.296,-4.128 l 6.054,0.008 c 2.371,0.043 4.222,1.968 4.176,4.29 l -0.012,13.85 33.539,0 -0.012,-13.85 c -0.046,-2.322 1.809,-4.247 4.177,-4.29 l 6.055,-0.008 C 2.202,-8.467 4.13,-6.614 4.177,-4.291 4.222,-1.973 2.371,-0.046 0,0" + inkscape:connector-curvature="0" /> + </g> + <g + transform="translate(671.1978,150.001)" + id="g312"> + <path + id="ojo_izq" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c 0.222,-1.563 -0.865,-3.009 -2.427,-3.23 -1.559,-0.222 -3.005,0.865 -3.228,2.425 -0.221,1.562 0.864,3.008 2.427,3.228 C -1.666,2.646 -0.221,1.56 0,0" + inkscape:connector-curvature="0" /> + </g> + <g + transform="translate(686.0581,152.1084)" + id="g316"> + <path + id="ojo_der" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c 0.222,-1.562 -0.866,-3.007 -2.427,-3.229 -1.562,-0.222 -3.006,0.865 -3.23,2.427 -0.22,1.56 0.867,3.007 2.427,3.227 C -1.667,2.647 -0.222,1.561 0,0" + inkscape:connector-curvature="0" /> + </g> + <g + transform="translate(689.3911,140.6904)" + id="g320"> + <path + id="boca" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c 1.399,-8.942 -9.674,-18.043 -17.648,-12.363 -2.683,1.911 -6.94,7.251 -5.409,10.884 0.539,1.277 1.731,0.486 3.024,-0.169 3.092,-1.571 6.768,-1.776 10.066,-0.782 1.68,0.507 3.115,1.325 4.48,2.42 0.83,0.669 3.097,3.333 4.345,2.126 C -0.168,1.175 0,0.004 0,0" + inkscape:connector-curvature="0" /> + </g> + <g + transform="translate(647.6968,191.7734)" + id="g324"> + <path + id="pelo_claro" + style="fill:#33b540;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c 4.563,7.816 18.894,7.876 21.489,-1.564 0.873,-3.173 0.799,-10.005 -2.682,-11.855 -1.222,-0.649 -1.647,0.718 -2.236,2.044 -1.406,3.168 -4.127,5.651 -7.313,6.962 C 7.64,-3.744 6.007,-3.472 4.259,-3.461 3.193,-3.454 -0.246,-4.088 -0.454,-2.362 -0.614,-1.021 -0.004,-0.003 0,0" + inkscape:connector-curvature="0" /> + </g> + <g + transform="translate(680.9731,172.3496)" + id="g328"> + <path + id="pelo_oscuro" + style="fill:#b92635;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 0,0 C -10.007,8.159 -6.93,28.366 6.946,29.94 11.615,30.47 21.224,28.858 23.06,23.544 23.706,21.679 21.688,21.381 19.688,20.843 14.912,19.562 10.813,16.275 8.261,12.077 6.961,9.939 6.219,7.703 5.813,5.241 5.569,3.741 5.703,-1.25 3.227,-1.158 1.301,-1.088 0.003,-0.002 0,0" + inkscape:connector-curvature="0" /> + </g> + </g> + <g + transform="matrix(1.2396646,0,0,-1.2396657,-841.62487,1195.3702)" + id="logotipo"> + <g + transform="translate(718.2769,124.5498)" + id="g332"> + <path + id="path334" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 0,-1.263 c -0.968,1.024 -2.108,1.534 -3.428,1.534 -1.121,0 -2.071,-0.409 -2.848,-1.23 -0.781,-0.817 -1.169,-1.785 -1.169,-2.895 0,-1.112 0.385,-2.085 1.159,-2.918 0.769,-0.833 1.716,-1.252 2.839,-1.252 1.429,0 2.622,0.568 3.575,1.702 l 0,-1.282 c -1.027,-0.897 -2.208,-1.344 -3.543,-1.344 -1.433,0 -2.624,0.491 -3.572,1.471 -0.951,0.983 -1.423,2.191 -1.423,3.623 0,1.416 0.479,2.615 1.442,3.589 0.963,0.974 2.155,1.463 3.574,1.463 1.323,0 2.455,-0.4 3.394,-1.198" + inkscape:connector-curvature="0" /> + </g> + <g + transform="translate(720.8501,121.5215)" + id="g336"> + <path + id="path338" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 0,0 7.487,0 C 7.362,0.9 6.969,1.665 6.31,2.296 5.594,2.965 4.752,3.299 3.784,3.299 2.803,3.299 1.948,2.976 1.217,2.326 0.488,1.676 0.08,0.9 0,0 m 8.454,-0.929 -8.454,0 c -0.031,-1.195 0.327,-2.173 1.069,-2.93 0.744,-0.756 1.684,-1.137 2.822,-1.137 1.5,0 2.644,0.724 3.427,2.164 L 8.12,-3.294 C 7.189,-5.045 5.735,-5.92 3.756,-5.92 c -1.406,0 -2.552,0.504 -3.439,1.517 -0.856,0.965 -1.287,2.16 -1.287,3.577 0,1.401 0.432,2.582 1.29,3.536 0.902,1.011 2.049,1.517 3.446,1.517 1.433,0 2.589,-0.513 3.462,-1.536 0.832,-0.969 1.24,-2.172 1.226,-3.62" + inkscape:connector-curvature="0" /> + </g> + <path + id="path340" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 732.889,115.801 -0.968,0 0,9.746 0.968,0 0,-9.746 z m -0.464,13.851 c 0.24,0 0.444,-0.086 0.614,-0.254 0.167,-0.168 0.252,-0.372 0.252,-0.611 0,-0.24 -0.085,-0.442 -0.252,-0.615 -0.17,-0.167 -0.374,-0.25 -0.614,-0.25 -0.238,0 -0.444,0.083 -0.613,0.25 -0.167,0.173 -0.252,0.375 -0.252,0.615 0,0.239 0.085,0.443 0.252,0.611 0.169,0.168 0.375,0.254 0.613,0.254" + inkscape:connector-curvature="0" /> + <g + transform="translate(741.2251,116.5254)" + id="g342"> + <path + id="path344" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c 1.153,0 2.091,0.426 2.811,1.271 0.686,0.807 1.033,1.788 1.033,2.94 0,1.098 -0.36,2.052 -1.078,2.868 -0.717,0.811 -1.627,1.216 -2.724,1.216 -1.197,0 -2.146,-0.39 -2.843,-1.166 -0.696,-0.778 -1.044,-1.757 -1.044,-2.94 0,-1.164 0.338,-2.146 1.012,-2.936 C -2.112,0.419 -1.168,0 0,0 m -4.732,-0.725 0,17.395 0.965,0 0,-9.34 c 0.866,1.26 2.124,1.893 3.781,1.893 1.44,0 2.602,-0.474 3.479,-1.422 C 4.372,6.853 4.812,5.656 4.812,4.211 4.812,2.753 4.38,1.537 3.517,0.571 2.609,-0.427 1.428,-0.924 -0.029,-0.924 c -0.751,0 -1.472,0.173 -2.166,0.522 -0.695,0.351 -1.216,0.828 -1.572,1.428 l 0,-1.751 -0.965,0 z" + inkscape:connector-curvature="0" /> + </g> + <g + transform="translate(752.145,124.8203)" + id="g346"> + <path + id="path348" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c -1.078,0 -1.979,-0.408 -2.691,-1.229 -0.716,-0.818 -1.074,-1.772 -1.074,-2.855 0,-1.152 0.343,-2.133 1.029,-2.939 0.73,-0.846 1.663,-1.272 2.799,-1.272 1.193,0 2.14,0.431 2.841,1.293 0.658,0.792 0.988,1.801 0.988,3.023 0,1.138 -0.36,2.086 -1.074,2.843 C 2.104,-0.379 1.166,0 0,0 m 4.812,0.727 0,-9.747 -0.967,0 0,1.751 C 3.493,-7.869 2.968,-8.346 2.273,-8.697 1.581,-9.046 0.859,-9.219 0.109,-9.219 c -1.459,0 -2.63,0.491 -3.513,1.472 -0.885,0.982 -1.328,2.205 -1.328,3.663 0,1.445 0.439,2.642 1.318,3.59 0.877,0.948 2.036,1.422 3.481,1.422 1.656,0 2.913,-0.633 3.778,-1.893 l 0,1.692 0.967,0 z" + inkscape:connector-curvature="0" /> + </g> + <path + id="path350" + style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 761.073,115.801 -0.967,0 0,17.395 0.967,0 0,-17.395 z" + inkscape:connector-curvature="0" /> + <g + transform="translate(767.4019,121.4551)" + id="g352"> + <path + id="path354" + style="fill:#b92635;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 0,0 0,7.096 C 0,7.913 0.14,8.521 0.421,8.924 0.703,9.326 1.135,9.527 1.71,9.527 2.28,9.527 2.709,9.326 2.994,8.924 3.28,8.521 3.423,7.913 3.423,7.096 l 0,-8.198 C 3.423,-2.728 3.05,-3.961 2.305,-4.8 1.559,-5.637 0.466,-6.054 -0.968,-6.054 c -1.12,0 -2.051,0.237 -2.792,0.71 -0.742,0.476 -1.113,1.058 -1.113,1.746 0,0.457 0.147,0.835 0.438,1.127 0.291,0.294 0.671,0.443 1.139,0.443 0.295,0 0.676,-0.123 1.145,-0.363 0.464,-0.241 0.807,-0.363 1.027,-0.363 0.405,0 0.693,0.196 0.866,0.591 C -0.087,-1.767 0,-1.047 0,0" + inkscape:connector-curvature="0" /> + </g> + <g + transform="translate(776.8813,121.7607)" + id="g356"> + <path + id="path358" + style="fill:#b92635;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 0,0 3.58,0 1.851,5.576 0,0 z m -0.966,-3.142 -0.513,-1.511 c -0.167,-0.503 -0.387,-0.886 -0.664,-1.15 -0.279,-0.264 -0.603,-0.396 -0.971,-0.396 -0.476,0 -0.865,0.156 -1.17,0.469 -0.304,0.312 -0.457,0.706 -0.457,1.179 0,0.192 0.014,0.372 0.042,0.536 0.026,0.163 0.067,0.315 0.122,0.454 l 3.899,10.602 c 0.281,0.765 0.632,1.325 1.053,1.685 0.422,0.355 0.942,0.536 1.561,0.536 0.581,0 1.087,-0.171 1.516,-0.513 C 3.881,8.407 4.211,7.917 4.445,7.269 L 8.24,-3.512 C 8.314,-3.74 8.371,-3.942 8.409,-4.12 8.446,-4.298 8.466,-4.457 8.466,-4.593 8.466,-5.066 8.31,-5.454 7.994,-5.753 7.677,-6.05 7.271,-6.199 6.778,-6.199 c -0.438,0 -0.804,0.137 -1.095,0.411 -0.291,0.273 -0.522,0.695 -0.694,1.259 l -0.42,1.387 -5.535,0 z" + inkscape:connector-curvature="0" /> + </g> + <g + transform="translate(785.7632,118.4199)" + id="g360"> + <path + id="path362" + style="fill:#b92635;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 1.83,10.216 c 0.151,0.844 0.409,1.445 0.766,1.806 0.362,0.359 0.879,0.541 1.551,0.541 0.639,0 1.151,-0.17 1.542,-0.504 0.392,-0.337 0.672,-0.844 0.845,-1.525 l 2.276,-8.953 2.128,8.974 c 0.159,0.667 0.432,1.167 0.822,1.504 0.393,0.334 0.897,0.504 1.512,0.504 0.707,0 1.25,-0.192 1.627,-0.574 0.376,-0.38 0.639,-1.012 0.783,-1.897 l 1.667,-10.309 c 0.028,-0.149 0.048,-0.297 0.06,-0.435 0.015,-0.141 0.022,-0.267 0.022,-0.377 0,-0.548 -0.157,-0.985 -0.475,-1.305 -0.313,-0.324 -0.731,-0.484 -1.255,-0.484 -0.479,0 -0.859,0.165 -1.141,0.493 -0.282,0.329 -0.463,0.83 -0.545,1.502 L 12.934,8.13 C 12.104,4.549 11.488,2.017 11.087,0.536 10.686,-0.946 10.374,-1.861 10.155,-2.213 10.02,-2.432 9.838,-2.588 9.616,-2.681 9.392,-2.772 9.097,-2.818 8.726,-2.818 c -0.578,0 -1.015,0.13 -1.316,0.39 -0.304,0.261 -0.532,0.704 -0.691,1.326 L 4.506,8.13 3.333,-0.607 C 3.223,-1.382 3.024,-1.945 2.737,-2.295 2.449,-2.646 2.05,-2.818 1.545,-2.818 c -0.502,0 -0.906,0.16 -1.212,0.484 -0.305,0.32 -0.458,0.757 -0.458,1.305 0,0.13 0.011,0.282 0.033,0.459 0.018,0.175 0.05,0.364 0.092,0.57" + inkscape:connector-curvature="0" /> + </g> + <g + transform="translate(808.2749,122.6221)" + id="g364"> + <path + id="path366" + style="fill:#b92635;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 0,0 c 0,-0.823 -0.136,-1.436 -0.407,-1.836 -0.271,-0.397 -0.685,-0.596 -1.239,-0.596 -0.55,0 -0.963,0.202 -1.237,0.605 -0.274,0.398 -0.411,1.009 -0.411,1.827 l 0,6.2 c 0,0.806 0.137,1.407 0.411,1.803 0.274,0.399 0.687,0.599 1.237,0.599 0.554,0 0.968,-0.199 1.239,-0.593 C -0.136,7.613 0,7.013 0,6.2 L 0,0 z m -3.479,-5.4 c 0,0.517 0.178,0.954 0.536,1.31 0.357,0.353 0.788,0.532 1.297,0.532 0.506,0 0.939,-0.179 1.295,-0.538 0.357,-0.358 0.538,-0.792 0.538,-1.304 0,-0.511 -0.183,-0.95 -0.542,-1.316 -0.362,-0.362 -0.791,-0.546 -1.291,-0.546 -0.509,0 -0.94,0.18 -1.297,0.543 -0.358,0.361 -0.536,0.8 -0.536,1.319" + inkscape:connector-curvature="0" /> + </g> + </g> + </g> +</svg> diff --git a/icons/imagen.svg b/icons/imagen.svg new file mode 100644 index 0000000..b1b485f --- /dev/null +++ b/icons/imagen.svg @@ -0,0 +1,16 @@ +<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [ + <!ENTITY stroke_color "#010101"> + <!ENTITY fill_color "#666666"> +]><svg enable-background="new 0 0 58.5 55" height="55px" version="1.1" viewBox="0 0 58.5 55" width="58.5px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px"><g display="block" id="transfer-from-image"> + <g display="inline"> + <polygon fill="&fill_color;" points="50.056,32.715 50.056,2 8.433,2 8.433,32.715 1.75,34.542 29.252,52.581 56.75,34.543 " stroke="&stroke_color;" stroke-linejoin="round" stroke-width="3.5"/> + </g> + <g display="inline"> + <g> + <polygon fill="#ffffff" points="43.041,35.189 43.041,21.577 35.281,13.812 15.204,13.812 15.204,35.189 " stroke="&fill_color;" stroke-width="2.275"/> + <polyline fill="none" points="35.281,13.812 35.281,21.577 43.041,21.577 " stroke="&fill_color;" stroke-width="2.275"/> + </g> + </g> + <path d="M29.206,21.798c-4.067,0-7.456,4.056-7.456,4.056s3.389,4.076,7.456,4.074 c4.069-0.004,7.458-4.078,7.458-4.078S33.275,21.795,29.206,21.798z M29.206,28.715c-1.575,0-2.852-1.277-2.852-2.853 c0-1.572,1.277-2.852,2.852-2.852c1.573,0,2.85,1.28,2.85,2.852C32.056,27.438,30.779,28.715,29.206,28.715z" display="inline" fill="&fill_color;"/> + <circle cx="29.207" cy="25.863" display="inline" fill="&fill_color;" r="1.294"/> +</g></svg> diff --git a/icons/open-from-journal.svg b/icons/open-from-journal.svg new file mode 100644 index 0000000..befd9d1 --- /dev/null +++ b/icons/open-from-journal.svg @@ -0,0 +1,131 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + enable-background="new 0 0 55 55" + height="55px" + id="Layer_1" + version="1.1" + viewBox="0 0 55 55" + width="55px" + x="0px" + xml:space="preserve" + y="0px" + inkscape:version="0.48.2 r9819" + sodipodi:docname="open-from-journal.svg"><metadata + id="metadata36"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs + id="defs34" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview32" + showgrid="false" + inkscape:zoom="4.2909091" + inkscape:cx="27.5" + inkscape:cy="42.782185" + inkscape:window-x="0" + inkscape:window-y="26" + inkscape:window-maximized="0" + inkscape:current-layer="g4" /> +<g + display="block" + id="document-save"> + <g + id="g4"> + <g + id="g6"> + <g + id="g8"> + <path + d="M6.736,49.002 h24.52c2.225,0,3.439-1.447,3.439-3.441V18.281c0-1.73-1.732-3.441-3.439-3.441h-4.389" + id="path10" + stroke-linejoin="round" + stroke-linecap="round" + stroke-width="3.5" + stroke="#010101" + fill="#FFFFFF" /> + </g> + </g> + <g + id="g12"> + <g + id="g14"> + <path + d="M26.867,38.592 c0,1.836-1.345,3.201-3.441,4.047l-16.69,6.363V14.84l16.69-8.599c2.228-0.394,3.441,0.84,3.441,2.834V38.592z" + fill="#FFFFFF" + stroke="#010101" + stroke-linecap="round" + stroke-linejoin="round" + stroke-width="3.5" + id="path16" /> + </g> + </g> + <path + d="M9.424,42.607 c0,0-1.351-0.543-2.702-0.543s-2.703,0.543-2.703,0.543" + fill="none" + stroke="#010101" + stroke-linecap="round" + stroke-linejoin="round" + stroke-width="2.25" + id="path18" /> + <path + d="M9.424,32.006 c0,0-1.239-0.543-2.815-0.543c-1.577,0-2.59,0.543-2.59,0.543" + fill="none" + stroke="#010101" + stroke-linecap="round" + stroke-linejoin="round" + stroke-width="2.25" + id="path20" /> + <path + d="M9.424,21.678 c0,0-1.125-0.544-2.927-0.544c-1.802,0-2.478,0.544-2.478,0.544" + fill="none" + stroke="#010101" + stroke-linecap="round" + stroke-linejoin="round" + stroke-width="2.25" + id="path22" /> + + <line + fill="none" + stroke="#010101" + stroke-linecap="round" + stroke-linejoin="round" + stroke-width="2.25" + x1="13.209" + x2="13.209" + y1="46.533" + y2="11.505" + id="line24" /> + + <g + id="g26" + transform="matrix(-0.9995945,-0.02847492,0.02847492,-0.9995945,93.291195,22.433532)"> + <line + x1="41.169998" + x2="52.441002" + y1="16.188" + y2="4.9169998" + id="line28" + style="fill:none;stroke:#ffffff;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round" /> + <polyline + points=" 51.562,15.306 41.17,16.188 42.053,5.794 " + id="polyline30" + style="fill:none;stroke:#ffffff;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round" /> + </g> + </g> +</g> +</svg> diff --git a/icons/sugarlabs.svg b/icons/sugarlabs.svg new file mode 100644 index 0000000..86caf0d --- /dev/null +++ b/icons/sugarlabs.svg @@ -0,0 +1,127 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="260.70001" + height="56.16" + viewBox="0 0 260.70001 56.159999" + enable-background="new 0 0 458.555 97.398" + xml:space="preserve" + inkscape:version="0.47 r22583" + sodipodi:docname="sugarlabs.svg"><metadata + id="metadata47"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs + id="defs45"><inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 48.699001 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="458.55499 : 48.699001 : 1" + inkscape:persp3d-origin="229.2775 : 32.466001 : 1" + id="perspective49" /></defs><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1567" + inkscape:window-height="638" + id="namedview43" + showgrid="false" + inkscape:zoom="1" + inkscape:cx="408.10999" + inkscape:cy="48.699001" + inkscape:window-x="161" + inkscape:window-y="88" + inkscape:window-maximized="0" + inkscape:current-layer="Layer_1" /> +<g + id="g3" + transform="matrix(0.5663399,0,0,0.5663399,0.99675819,0.00400058)"> + <g + id="g5"> + <path + d="m 21.118,77.072 c -11.052,0 -21.119,-5.5 -21.119,-11.539 0,-3.157 2.303,-5.63 5.244,-5.63 2.022,0 3.719,1.183 5.515,2.435 2.592,1.809 5.529,3.855 10.651,3.855 5.139,0 8.21,-2.647 8.21,-5.209 0,-3.416 -5.271,-5.607 -10.852,-7.927 C 10.968,49.814 2.128,46.139 2.128,37.171 c 0,-10.573 9.933,-16.279 19.28,-16.279 7.89,0 18.895,4.132 18.895,10.86 0,2.526 -1.763,5.244 -5.632,5.244 -2.068,0 -3.558,-1.125 -4.997,-2.212 -1.872,-1.414 -3.994,-3.015 -8.266,-3.015 -1.209,0 -7.242,0.227 -7.242,4.726 0,2.729 4.879,4.613 10.044,6.608 7.772,3.001 17.446,6.739 17.446,16.333 0.002,12.117 -10.646,17.636 -20.538,17.636 l 0,0 z" + id="path7" + style="fill:#033cd2" /> + <path + d="m 21.41,22.651 c 7.066,0 17.134,3.775 17.134,9.099 0,1.839 -1.259,3.484 -3.873,3.484 -3.677,0 -5.13,-5.227 -13.261,-5.227 -4.84,0 -9.002,2.129 -9.002,6.485 0,9.002 27.491,8.035 27.491,22.941 0,10.746 -9.196,15.877 -18.779,15.877 -10.842,0 -19.359,-5.422 -19.359,-9.779 0,-2.321 1.645,-3.87 3.484,-3.87 3.775,0 6.873,6.291 16.166,6.291 6.195,0 9.97,-3.484 9.97,-6.97 C 31.381,50.916 3.89,51.496 3.89,37.17 3.889,27.685 12.795,22.651 21.41,22.651 m 0,-3.52 c -10.2,0 -21.041,6.323 -21.041,18.04 0,10.142 9.828,14.228 17.724,17.511 4.578,1.903 9.767,4.061 9.767,6.302 0,1.41 -2.297,3.45 -6.45,3.45 -4.569,0 -7.15,-1.801 -9.646,-3.541 -1.939,-1.353 -3.944,-2.75 -6.52,-2.75 -3.928,0 -7.004,3.246 -7.004,7.39 0,7.085 10.691,13.299 22.879,13.299 10.74,0 22.299,-6.069 22.299,-19.396 0,-10.802 -10.733,-14.947 -18.57,-17.974 -3.337,-1.289 -8.921,-3.445 -8.921,-4.968 0,-2.822 4.567,-2.965 5.482,-2.965 3.682,0 5.393,1.292 7.205,2.66 1.593,1.203 3.398,2.566 6.057,2.566 4.284,0 7.393,-2.946 7.393,-7.004 C 42.063,23.625 29.851,19.131 21.41,19.131 l 0,0 z" + id="path9" + style="fill:#78e600" /> + </g> + <g + id="g11"> + <path + d="m 75.714,77.072 c -10.726,0 -22.187,-5.854 -22.187,-22.281 v -27.59 c 0,-3.773 2.418,-6.309 6.02,-6.309 3.602,0 6.021,2.536 6.021,6.309 V 54.5 c 0,7.979 3.224,11.693 10.146,11.693 6.922,0 10.146,-3.715 10.146,-11.693 V 27.201 c 0,-3.773 2.418,-6.309 6.02,-6.309 3.6,0 6.018,2.536 6.018,6.309 v 27.59 c 0,16.427 -11.46,22.281 -22.184,22.281 l 0,0 z" + id="path13" + style="fill:#033cd2" /> + <path + d="m 91.879,22.651 c 2.613,0 4.259,1.743 4.259,4.549 v 27.59 c 0,15.101 -10.068,20.522 -20.425,20.522 -10.357,0 -20.425,-5.422 -20.425,-20.522 V 27.201 c 0,-2.807 1.646,-4.549 4.26,-4.549 2.613,0 4.259,1.743 4.259,4.549 V 54.5 c 0,8.809 3.872,13.454 11.907,13.454 8.035,0 11.906,-4.646 11.906,-13.454 V 27.201 c 0,-2.807 1.645,-4.55 4.259,-4.55 m 0,-3.52 c -4.581,0 -7.78,3.318 -7.78,8.069 v 27.3 c 0,8.754 -4.239,9.935 -8.386,9.935 -4.147,0 -8.387,-1.181 -8.387,-9.935 V 27.201 c 0,-4.751 -3.199,-8.069 -7.779,-8.069 -4.581,0 -7.78,3.318 -7.78,8.069 V 54.79 c 0,17.727 12.37,24.042 23.945,24.042 11.575,0 23.945,-6.315 23.945,-24.042 V 27.201 c 0.001,-4.751 -3.198,-8.07 -7.778,-8.07 l 0,0 z" + id="path15" + style="fill:#78e600" /> + </g> + <g + id="g17"> + <path + d="m 133.6,97.399 c -8.493,0 -21.509,-4.994 -21.509,-11.149 0,-2.758 1.671,-5.729 5.342,-5.729 2.021,0 3.766,1.074 5.785,2.317 2.804,1.728 5.981,3.683 11.059,3.683 10.827,0 12.215,-9.426 12.273,-13.816 -3.037,2.818 -7.039,4.37 -11.498,4.37 -16.028,0 -24.414,-14.133 -24.414,-28.092 0,-13.959 8.386,-28.09 24.414,-28.09 4.424,0 8.692,1.905 11.688,4.32 0.654,-2.638 2.95,-4.32 6.122,-4.32 2.778,0 5.731,2.077 5.731,5.923 v 44.237 c 0,16.003 -9.811,26.346 -24.993,26.346 l 0,0 z m 1.452,-65.629 c -9.132,0 -12.372,9.271 -12.372,17.212 0,7.941 3.24,17.211 12.372,17.211 9.13,0 12.371,-9.271 12.371,-17.211 0,-7.94 -3.241,-17.212 -12.371,-17.212 l 0,0 z" + id="path19" + style="fill:#033cd2" /> + <path + d="m 152.862,22.651 c 1.645,0 3.969,1.162 3.969,4.163 v 44.237 c 0,15.294 -9.293,24.587 -23.232,24.587 -8.809,0 -19.747,-5.033 -19.747,-9.389 0,-1.742 0.872,-3.969 3.582,-3.969 3.872,0 7.648,6.001 16.843,6.001 10.843,0 14.037,-8.519 14.037,-15.875 v -4.453 h -0.194 c -2.614,4.453 -7.261,7.358 -13.068,7.358 -14.52,0 -22.651,-12.682 -22.651,-26.331 0,-13.649 8.131,-26.33 22.651,-26.33 5.517,0 10.841,3.388 13.068,6.486 h 0.194 v -2.324 c -0.001,-2.999 2.225,-4.161 4.548,-4.161 m -17.811,45.303 c 10.454,0 14.132,-10.26 14.132,-18.972 0,-8.712 -3.679,-18.973 -14.132,-18.973 -10.455,0 -14.133,10.261 -14.133,18.973 0,8.712 3.678,18.972 14.133,18.972 m 17.811,-48.823 c -3.035,0 -5.485,1.289 -6.859,3.399 -3.083,-1.981 -6.961,-3.399 -10.952,-3.399 -17.182,0 -26.171,15.017 -26.171,29.85 0,14.833 8.99,29.85 26.171,29.85 3.423,0 6.604,-0.83 9.352,-2.385 -0.846,4.075 -3.355,8.315 -10.127,8.315 -4.579,0 -7.53,-1.818 -10.134,-3.422 -2.154,-1.326 -4.188,-2.579 -6.708,-2.579 -4.115,0 -7.102,3.149 -7.102,7.488 0,7.488 13.898,12.908 23.267,12.908 7.882,0 14.584,-2.642 19.383,-7.64 4.821,-5.022 7.37,-12.1 7.37,-20.467 V 26.814 c -0.001,-4.99 -3.859,-7.683 -7.49,-7.683 l 0,0 z m -17.811,45.303 c -10.101,0 -10.613,-12.872 -10.613,-15.453 0,-2.581 0.512,-15.453 10.613,-15.453 10.101,0 10.612,12.873 10.612,15.453 0,2.58 -0.511,15.453 -10.612,15.453 l 0,0 z" + id="path21" + style="fill:#78e600" /> + </g> + <g + id="g23"> + <path + d="m 214.331,77.072 c -2.625,0 -5.279,-1.729 -5.68,-5.044 -3.492,3.314 -7.752,5.044 -12.52,5.044 -16.026,0 -24.411,-14.131 -24.411,-28.091 0,-13.958 8.385,-28.089 24.411,-28.089 4.755,0 8.745,1.484 12.563,4.743 0.52,-3.119 3.091,-4.743 5.636,-4.743 2.776,0 5.727,2.076 5.727,5.923 v 44.334 c 0.001,3.847 -2.95,5.923 -5.726,5.923 l 0,0 z M 196.132,31.768 c -9.132,0 -12.373,9.273 -12.373,17.212 0,7.94 3.241,17.212 12.373,17.212 9.133,0 12.373,-9.272 12.373,-17.212 0,-7.939 -3.24,-17.212 -12.373,-17.212 l 0,0 z" + id="path25" + style="fill:#033cd2" /> + <path + d="m 214.331,22.651 c 1.645,0 3.967,1.162 3.967,4.163 v 44.334 c 0,3.002 -2.322,4.164 -3.967,4.164 -1.743,0 -3.97,-1.162 -3.97,-4.164 v -3.581 h -0.193 c -3.678,5.228 -8.518,7.745 -14.036,7.745 -14.521,0 -22.651,-12.682 -22.651,-26.331 0,-13.649 8.13,-26.33 22.651,-26.33 5.905,0 10.067,2.516 14.036,6.873 h 0.193 v -2.71 c 0,-3.001 2.227,-4.163 3.97,-4.163 m -18.199,45.303 c 10.454,0 14.133,-10.26 14.133,-18.972 0,-8.712 -3.679,-18.973 -14.133,-18.973 -10.455,0 -14.133,10.261 -14.133,18.973 0,8.712 3.678,18.972 14.133,18.972 m 18.199,-48.823 c -2.479,0 -5.063,1.254 -6.454,3.637 -3.564,-2.488 -7.348,-3.637 -11.745,-3.637 -17.181,0 -26.171,15.017 -26.171,29.85 0,14.833 8.99,29.85 26.171,29.85 4.331,0 8.272,-1.291 11.662,-3.784 1.37,2.479 4.009,3.784 6.538,3.784 3.63,0 7.487,-2.692 7.487,-7.684 V 26.814 c -10e-4,-4.99 -3.858,-7.683 -7.488,-7.683 l 0,0 z m -18.199,45.303 c -10.102,0 -10.613,-12.872 -10.613,-15.453 0,-2.581 0.512,-15.453 10.613,-15.453 10.101,0 10.613,12.873 10.613,15.453 0,2.58 -0.512,15.453 -10.613,15.453 l 0,0 z" + id="path27" + style="fill:#78e600" /> + </g> + <g + id="g29"> + <path + d="m 241.048,77.072 c -3.601,0 -6.02,-2.536 -6.02,-6.311 v -43.56 c 0,-3.774 2.419,-6.309 6.02,-6.309 3.289,0 5.593,2.118 5.965,5.361 2.537,-2.849 6.103,-5.361 10.104,-5.361 3.768,0 6.503,2.572 6.503,6.115 0,2.326 -1.173,5.322 -6.76,6.375 -2.962,0.514 -9.794,2.787 -9.794,12.889 v 24.49 c 0,3.775 -2.419,6.311 -6.018,6.311 l 0,0 z" + id="path31" + style="fill:#033cd2" /> + <path + d="m 257.116,22.651 c 3,0 4.744,1.936 4.744,4.355 0,2.42 -1.744,3.97 -5.326,4.647 -5.033,0.871 -11.228,4.646 -11.228,14.617 v 24.491 c 0,2.808 -1.646,4.551 -4.259,4.551 -2.615,0 -4.26,-1.743 -4.26,-4.551 v -43.56 c 0,-2.807 1.645,-4.549 4.26,-4.549 2.613,0 4.259,1.743 4.259,4.549 v 4.356 h 0.194 c 1.936,-3.969 6.679,-8.906 11.616,-8.906 m 0,-3.52 c -3.515,0 -6.709,1.664 -9.283,3.875 -1.286,-2.396 -3.728,-3.875 -6.785,-3.875 -4.581,0 -7.779,3.318 -7.779,8.069 v 43.561 c 0,4.752 3.198,8.07 7.779,8.07 4.58,0 7.778,-3.318 7.778,-8.07 v -24.49 c 0,-8.449 5.206,-10.611 8.309,-11.148 0.018,-0.003 0.035,-0.006 0.054,-0.01 7.128,-1.348 8.191,-5.657 8.191,-8.105 0,-4.565 -3.475,-7.877 -8.264,-7.877 l 0,0 z" + id="path33" + style="fill:#78e600" /> + </g> + <path + d="m 283.057,70.761 c 0,2.808 -1.646,4.551 -4.259,4.551 -2.614,0 -4.26,-1.743 -4.26,-4.551 V 4.55 c 0,-2.808 1.646,-4.55 4.26,-4.55 2.613,0 4.259,1.743 4.259,4.55 v 66.211 z" + id="path35" + style="fill:#969696" /> + <path + d="m 344.138,71.148 c 0,3.002 -2.324,4.164 -3.969,4.164 -1.742,0 -3.969,-1.162 -3.969,-4.164 v -3.581 h -0.193 c -3.68,5.228 -8.52,7.745 -14.037,7.745 -14.52,0 -22.65,-12.682 -22.65,-26.331 0,-13.649 8.131,-26.33 22.65,-26.33 5.906,0 10.067,2.516 14.037,6.873 h 0.193 v -2.71 c 0,-3.001 2.227,-4.163 3.969,-4.163 1.645,0 3.969,1.162 3.969,4.163 V 71.148 z M 321.97,67.954 c 10.455,0 14.133,-10.26 14.133,-18.972 0,-8.712 -3.678,-18.973 -14.133,-18.973 -10.453,0 -14.132,10.261 -14.132,18.973 0,8.712 3.679,18.972 14.132,18.972 z" + id="path37" + style="fill:#969696" /> + <path + d="m 363.013,4.55 c 0,-2.808 1.646,-4.55 4.26,-4.55 2.614,0 4.26,1.743 4.26,4.55 v 25.07 h 0.192 c 2.227,-3.194 6.97,-6.969 13.745,-6.969 13.941,0 21.975,12.681 21.975,26.33 0,13.649 -8.033,26.331 -21.975,26.331 -6.775,0 -11.324,-2.421 -13.745,-7.068 h -0.192 v 2.518 c 0,2.808 -1.646,4.551 -4.26,4.551 -2.614,0 -4.26,-1.743 -4.26,-4.551 V 4.55 z m 21.781,63.404 c 10.453,0 14.131,-10.26 14.131,-18.972 0,-8.712 -3.678,-18.973 -14.131,-18.973 -10.455,0 -14.135,10.261 -14.135,18.973 0,8.712 3.68,18.972 14.135,18.972 z" + id="path39" + style="fill:#969696" /> + <path + d="m 440.065,22.651 c 7.066,0 17.135,3.775 17.135,9.099 0,1.839 -1.26,3.484 -3.873,3.484 -3.678,0 -5.13,-5.227 -13.262,-5.227 -4.84,0 -9.002,2.129 -9.002,6.485 0,9.002 27.491,8.035 27.491,22.941 0,10.746 -9.196,15.877 -18.778,15.877 -10.843,0 -19.361,-5.422 -19.361,-9.779 0,-2.321 1.646,-3.87 3.484,-3.87 3.775,0 6.873,6.291 16.166,6.291 6.195,0 9.971,-3.484 9.971,-6.97 0,-10.066 -27.491,-9.486 -27.491,-23.812 0,-9.485 8.905,-14.519 17.52,-14.519 z" + id="path41" + style="fill:#969696" /> +</g> +</svg>
\ No newline at end of file diff --git a/icons/texto.svg b/icons/texto.svg new file mode 100644 index 0000000..f789579 --- /dev/null +++ b/icons/texto.svg @@ -0,0 +1,17 @@ +<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [ + <!ENTITY stroke_color "#010101"> + <!ENTITY fill_color "#666666"> +]><svg enable-background="new 0 0 58.5 55" height="55px" version="1.1" viewBox="0 0 58.5 55" width="58.5px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px"><g display="block" id="transfer-from-text"> + <g display="inline"> + <polygon fill="&fill_color;" points="50.056,32.715 50.056,2 8.433,2 8.433,32.715 1.75,34.542 29.252,52.581 56.75,34.543 " stroke="&stroke_color;" stroke-linejoin="round" stroke-width="3.5"/> + </g> + <g display="inline"> + <g> + <polygon fill="#ffffff" points="18.435,10.583 32.046,10.583 39.811,18.343 39.811,38.42 18.435,38.42 " stroke="&fill_color;" stroke-width="2.275"/> + <polyline fill="none" points="39.811,18.343 32.046,18.343 32.046,10.583 " stroke="&fill_color;" stroke-width="2.275"/> + </g> + </g> + <line display="inline" fill="none" stroke="&fill_color;" stroke-width="2.275" x1="22.948" x2="35.298" y1="23.688" y2="23.688"/> + <line display="inline" fill="none" stroke="&fill_color;" stroke-width="2.275" x1="22.948" x2="35.298" y1="28.238" y2="28.238"/> + <line display="inline" fill="none" stroke="&fill_color;" stroke-width="2.275" x1="22.948" x2="35.298" y1="32.787" y2="32.787"/> +</g></svg> diff --git a/icons/video.svg b/icons/video.svg new file mode 100644 index 0000000..ef09227 --- /dev/null +++ b/icons/video.svg @@ -0,0 +1,20 @@ +<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [ + <!ENTITY stroke_color "#010101"> + <!ENTITY fill_color "#666666"> +]><svg enable-background="new 0 0 58.5 55" height="55px" version="1.1" viewBox="0 0 58.5 55" width="58.5px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px"><g display="block" id="transfer-from-video"> + <g display="inline"> + <polygon fill="&fill_color;" points="50.056,32.715 50.056,2 8.433,2 8.433,32.715 1.75,34.542 29.252,52.581 56.75,34.543 " stroke="&stroke_color;" stroke-linejoin="round" stroke-width="3.5"/> + </g> + <g display="inline"> + <g> + <polygon fill="#ffffff" points="43.041,35.189 43.041,21.577 35.281,13.812 15.204,13.812 15.204,35.189 " stroke="&fill_color;" stroke-width="2.275"/> + <polyline fill="none" points="35.281,13.812 35.281,21.577 43.041,21.577 " stroke="&fill_color;" stroke-width="2.275"/> + </g> + </g> + <path d="M29.207,22.772c-3.092,0-5.668,3.083-5.668,3.083s2.576,3.099,5.668,3.098 c3.092-0.004,5.669-3.102,5.669-3.102S32.299,22.771,29.207,22.772z M29.207,28.031c-1.197,0-2.168-0.972-2.168-2.169 c0-1.195,0.971-2.168,2.168-2.168c1.195,0,2.167,0.973,2.167,2.168C31.374,27.06,30.402,28.031,29.207,28.031z" display="inline" fill="&fill_color;"/> + <circle cx="29.207" cy="25.863" display="inline" fill="&fill_color;" r="0.984"/> + <circle cx="20.998" cy="25.863" display="inline" fill="&fill_color;" r="0.984"/> + <circle cx="18.073" cy="25.863" display="inline" fill="&fill_color;" r="0.984"/> + <circle cx="39.847" cy="25.863" display="inline" fill="&fill_color;" r="0.984"/> + <circle cx="36.923" cy="25.863" display="inline" fill="&fill_color;" r="0.984"/> +</g></svg> diff --git a/locale/en/LC_MESSAGES/org.CeibalJAM.Compress.mo b/locale/en/LC_MESSAGES/org.CeibalJAM.Compress.mo Binary files differnew file mode 100644 index 0000000..ed4bd44 --- /dev/null +++ b/locale/en/LC_MESSAGES/org.CeibalJAM.Compress.mo diff --git a/locale/en/activity.linfo b/locale/en/activity.linfo new file mode 100644 index 0000000..94b44e2 --- /dev/null +++ b/locale/en/activity.linfo @@ -0,0 +1,2 @@ +[Activity] +name = Compress diff --git a/po/Compress.pot b/po/Compress.pot new file mode 100644 index 0000000..81fc070 --- /dev/null +++ b/po/Compress.pot @@ -0,0 +1,206 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-12-05 17:35+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: activity/activity.info:2 +msgid "Compress" +msgstr "" + +#: CompressCanvas3.py:35 CompressCanvas.py:34 +msgid "Nuevo directorio" +msgstr "" + +#: CompressCanvas3.py:46 CompressCanvas.py:45 +msgid "Guardar archivo" +msgstr "" + +#: CompressCanvas3.py:47 CompressCanvas.py:46 +msgid "Para que los cambios se guarden presione la tecla '↵' o el icono √ " +msgstr "" + +#: CompressCanvas3.py:68 CompressCanvas3.py:224 CompressCanvas3.py:273 +#: CompressCanvas.py:67 CompressCanvas.py:224 CompressCanvas.py:272 +msgid "Archivos en el directorio" +msgstr "" + +#: CompressCanvas3.py:118 CompressCanvas.py:117 +msgid "Guardar imagen: " +msgstr "" + +#: CompressCanvas3.py:121 CompressCanvas.py:120 +msgid "Guardar texto: " +msgstr "" + +#: CompressCanvas3.py:124 CompressCanvas.py:123 +msgid "Guardar audio: " +msgstr "" + +#: CompressCanvas3.py:128 CompressCanvas.py:127 +msgid "Guardar: " +msgstr "" + +#: CompressCanvas3.py:136 CompressCanvas.py:135 +msgid "Seleccione un archivo" +msgstr "" + +#: CompressCanvas3.py:169 CompressCanvas.py:168 utils.py:119 utils3.py:121 +msgid "Oh..Parece que no selecciono un archivo zip" +msgstr "" + +#: CompressCanvas3.py:193 CompressCanvas.py:192 +msgid "Carpeta:" +msgstr "" + +#: CompressCanvas3.py:247 CompressCanvas.py:247 +msgid "imagen" +msgstr "" + +#: CompressCanvas3.py:261 CompressCanvas.py:260 +msgid "archivo" +msgstr "" + +#: CompressCanvas3.py:267 CompressCanvas3.py:382 CompressCanvas.py:266 +#: CompressCanvas.py:381 +msgid "directorio" +msgstr "" + +#: CompressCanvas3.py:291 CompressCanvas.py:290 +msgid "Abrir zip" +msgstr "" + +#: CompressCanvas3.py:297 CompressCanvas.py:296 +#, python-format +msgid "Cerrar zip: %s" +msgstr "" + +#: CompressCanvas3.py:301 CompressCanvas.py:300 +msgid "Copiar" +msgstr "" + +#: CompressCanvas3.py:304 CompressCanvas.py:303 +msgid "Descomprimir" +msgstr "" + +#: CompressCanvas3.py:306 CompressCanvas.py:305 +msgid "Cortar" +msgstr "" + +#: CompressCanvas3.py:308 CompressCanvas.py:307 +msgid "Borrar" +msgstr "" + +#: CompressCanvas3.py:310 CompressCanvas.py:309 +msgid "Comprimir este archivo" +msgstr "" + +#: CompressCanvas3.py:319 CompressCanvas.py:318 +msgid "Copiar al zip" +msgstr "" + +#: CompressCanvas3.py:325 CompressCanvas.py:324 +msgid "Atras" +msgstr "" + +#: CompressCanvas3.py:328 CompressCanvas.py:327 +msgid "Pegar" +msgstr "" + +#: CompressCanvas3.py:404 CompressCanvas.py:403 +#, python-format +msgid "Seguro que desea borrar el archivo: %s" +msgstr "" + +#: CompressCanvas3.py:413 CompressCanvas.py:412 +msgid "Error al acceder al " +msgstr "" + +#: CompressCanvas3.py:423 CompressCanvas.py:422 +msgid "El " +msgstr "" + +#: CompressCanvas3.py:428 CompressCanvas.py:427 +msgid "No tiene acceso a ese " +msgstr "" + +#: CompressCanvas3.py:432 CompressCanvas.py:431 +msgid " no es un directorio" +msgstr "" + +#: CompressCanvas3.py:450 CompressCanvas.py:449 +#, python-format +msgid "Error al intentar copiar: %s " +msgstr "" + +#: CompressCanvas3.py:455 CompressCanvas.py:454 +#, python-format +msgid "Error al intentar cortar: %s " +msgstr "" + +#: CompressCanvas3.py:460 CompressCanvas.py:459 +msgid "Error: No hay nada en el portapapeles" +msgstr "" + +#: CompressCanvas3.py:465 CompressCanvas.py:464 +msgid "Error al intentar pegar un archivo" +msgstr "" + +#: CompressCanvas3.py:470 CompressCanvas.py:469 +msgid "¡Ups! Parece que aún no abrio ningun archivo" +msgstr "" + +#: CompressCanvas3.py:475 CompressCanvas.py:474 +msgid "Error desconocido" +msgstr "" + +#: Compress.py:30 Compress.py:77 +msgid "Abrir" +msgstr "" + +#: Compress.py:31 Compress.py:78 +msgid "Arriba" +msgstr "" + +#: Compress.py:32 Compress.py:79 +msgid "Directorio Zip" +msgstr "" + +#: Compress.py:34 Compress.py:81 +msgid "Añadir archivo" +msgstr "" + +#: Compress.py:35 Compress.py:82 +msgid "Guardar archivo:" +msgstr "" + +#: Compress.py:45 +msgid "Parar - Gtk3" +msgstr "" + +#: Compress.py:92 +msgid "Parar - Gtk2" +msgstr "" + +#: utils.py:117 utils3.py:119 +msgid "" +"Ups! Parece que el archivo esta dañado.O no es un zip ..Porfavor intente con " +"otro" +msgstr "" + +#: utils.py:141 utils3.py:143 +msgid "Archivos con contraseña aún no han sido implementados" +msgstr "" diff --git a/po/en.po b/po/en.po new file mode 100644 index 0000000..0b7a611 --- /dev/null +++ b/po/en.po @@ -0,0 +1,208 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: 1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-12-05 17:35+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Rafael Cordano <rafael.cordano@gmail.com>\n" +"Language-Team: The Compress team <>\n" +"Language: Spanish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: activity/activity.info:2 +msgid "Compress" +msgstr "Compress" + +#: CompressCanvas3.py:35 CompressCanvas.py:34 +msgid "Nuevo directorio" +msgstr "New directory" + +#: CompressCanvas3.py:46 CompressCanvas.py:45 +msgid "Guardar archivo" +msgstr "Save file" + +#: CompressCanvas3.py:47 CompressCanvas.py:46 +msgid "Para que los cambios se guarden presione la tecla '↵' o el icono √ " +msgstr "For the changes be saved press the '↵' key or the √ icon " + +#: CompressCanvas3.py:68 CompressCanvas3.py:224 CompressCanvas3.py:273 +#: CompressCanvas.py:67 CompressCanvas.py:224 CompressCanvas.py:272 +msgid "Archivos en el directorio" +msgstr "Files in the directory" + +#: CompressCanvas3.py:118 CompressCanvas.py:117 +msgid "Guardar imagen: " +msgstr "Save image: " + +#: CompressCanvas3.py:121 CompressCanvas.py:120 +msgid "Guardar texto: " +msgstr "Save text: " + +#: CompressCanvas3.py:124 CompressCanvas.py:123 +msgid "Guardar audio: " +msgstr "Save audio: " + +#: CompressCanvas3.py:128 CompressCanvas.py:127 +msgid "Guardar: " +msgstr "Save: " + +#: CompressCanvas3.py:136 CompressCanvas.py:135 +msgid "Seleccione un archivo" +msgstr "Choose a file" + +#: CompressCanvas3.py:169 CompressCanvas.py:168 utils.py:119 utils3.py:121 +msgid "Oh..Parece que no selecciono un archivo zip" +msgstr "Oh.. Seems you not selected any zip file" + +#: CompressCanvas3.py:193 CompressCanvas.py:192 +msgid "Carpeta:" +msgstr "Directory: " + +#: CompressCanvas3.py:247 CompressCanvas.py:247 +msgid "imagen" +msgstr "image" + +#: CompressCanvas3.py:261 CompressCanvas.py:260 +msgid "archivo" +msgstr "file" + +#: CompressCanvas3.py:267 CompressCanvas3.py:382 CompressCanvas.py:266 +#: CompressCanvas.py:381 +msgid "directorio" +msgstr "directory" + +#: CompressCanvas3.py:291 CompressCanvas.py:290 +msgid "Abrir zip" +msgstr "Open zip" + +#: CompressCanvas3.py:297 CompressCanvas.py:296 +#, python-format +msgid "Cerrar zip: %s" +msgstr "Close zip: %s" + +#: CompressCanvas3.py:301 CompressCanvas.py:300 +msgid "Copiar" +msgstr "Copy" + +#: CompressCanvas3.py:304 CompressCanvas.py:303 +msgid "Descomprimir" +msgstr "Uncompress" + +#: CompressCanvas3.py:306 CompressCanvas.py:305 +msgid "Cortar" +msgstr "Cut" + +#: CompressCanvas3.py:308 CompressCanvas.py:307 +msgid "Borrar" +msgstr "Delete" + +#: CompressCanvas3.py:310 CompressCanvas.py:309 +msgid "Comprimir este archivo" +msgstr "Compress this file" + +#: CompressCanvas3.py:319 CompressCanvas.py:318 +msgid "Copiar al zip" +msgstr "Copy to zip" + +#: CompressCanvas3.py:325 CompressCanvas.py:324 +msgid "Atras" +msgstr "Back" + +#: CompressCanvas3.py:328 CompressCanvas.py:327 +msgid "Pegar" +msgstr "Paste" + +#: CompressCanvas3.py:404 CompressCanvas.py:403 +#, python-format +msgid "Seguro que desea borrar el archivo: %s" +msgstr "Are you sure you want to delete this file: %s ?" + +#: CompressCanvas3.py:413 CompressCanvas.py:412 +msgid "Error al acceder al " +msgstr "Error accessing to " + +#: CompressCanvas3.py:423 CompressCanvas.py:422 +msgid "El " +msgstr "The " + +#: CompressCanvas3.py:428 CompressCanvas.py:427 +msgid "No tiene acceso a ese " +msgstr "You have not got access for this" + +#: CompressCanvas3.py:432 CompressCanvas.py:431 +msgid " no es un directorio" +msgstr "It is not a directory" + +#: CompressCanvas3.py:450 CompressCanvas.py:449 +#, python-format +msgid "Error al intentar copiar: %s " +msgstr "Error when trying copy: %s " + +#: CompressCanvas3.py:455 CompressCanvas.py:454 +#, python-format +msgid "Error al intentar cortar: %s " +msgstr "Error when trying cut: %s " + +#: CompressCanvas3.py:460 CompressCanvas.py:459 +msgid "Error: No hay nada en el portapapeles" +msgstr "Error: It is not nothing in the clipboard" + +#: CompressCanvas3.py:465 CompressCanvas.py:464 +msgid "Error al intentar pegar un archivo" +msgstr "Error when trying paste a file" + +#: CompressCanvas3.py:470 CompressCanvas.py:469 +msgid "¡Ups! Parece que aún no abrio ningun archivo" +msgstr "Ups! Seems not yet opened any file" + +#: CompressCanvas3.py:475 CompressCanvas.py:474 +msgid "Error desconocido" +msgstr "Unknown error" + +#: Compress.py:30 Compress.py:77 +msgid "Abrir" +msgstr "Open" + +#: Compress.py:31 Compress.py:78 +msgid "Arriba" +msgstr "Up" + +#: Compress.py:32 Compress.py:79 +msgid "Directorio Zip" +msgstr "Zip directory" + +#: Compress.py:34 Compress.py:81 +msgid "Añadir archivo" +msgstr "Add file" + +#: Compress.py:35 Compress.py:82 +msgid "Guardar archivo:" +msgstr "Save files:" + +#: Compress.py:45 +msgid "Parar - Gtk3" +msgstr "Stop - Gtk3" + +#: Compress.py:92 +msgid "Parar - Gtk2" +msgstr "Stop - Gtk2" + +#: utils.py:117 utils3.py:119 +msgid "" +"Ups! Parece que el archivo esta dañado.O no es un zip ..Porfavor intente con " +"otro" +msgstr "Ups! seems that the file is spoiled.Or is not a zip file .. Please try with " +"other" + +#: utils.py:141 utils3.py:143 +msgid "Archivos con contraseña aún no han sido implementados" +msgstr "Files with password have not yet been implemented" + + diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..0c39199 --- /dev/null +++ b/setup.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python + +from sugar.activity import bundlebuilder + +bundlebuilder.start() diff --git a/utils.py b/utils.py new file mode 100644 index 0000000..316b39d --- /dev/null +++ b/utils.py @@ -0,0 +1,158 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# utils.py +# +# Copyright 2012 Rafael Cordano <rafael.cordano@gmail.com> +# Copyright 2012 Ignacio Rodríguez <nachoel01@gmail.com> +# Copyright 2012 Ezequiel Pereira <eze2307@gmail.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. +# +# +import zipfile,gtk +import utils,commands +from sugar.graphics.toolbutton import ToolButton +import os, shutil +from gettext import gettext as _ +try: + os.mkdir('/tmp/Compress') + os.mkdir('/tmp/Compress/Work') +except: + pass +Archivos = None +Archivo_d = None +Dir = False +DirName = None +def Descomprimir(Archivo): + pass + +class Abrir(): + def __init__(self,box,texto): + Ventana = gtk.FileChooserDialog("Abrir..", + None, + gtk.FILE_CHOOSER_ACTION_OPEN, + (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, + gtk.STOCK_OK, gtk.RESPONSE_OK)) + + Ventana.set_default_response(gtk.RESPONSE_OK) + + Filtro = gtk.FileFilter() + Filtro.set_name("Archivos ZIP") + Filtro.add_pattern("*.zip") + Ventana.add_filter(Filtro) + + Echo = Ventana.run() + if Echo == gtk.RESPONSE_OK: + File = Ventana.get_filename() + utils.Archivo_d = File + try: + decompress(File,box) + os.chdir('/tmp/Compress/Work') + Ventana.destroy() + except: + Ventana.destroy() + + elif Echo == gtk.RESPONSE_CANCEL: + Ventana.destroy() + + +class Abrir_Directorio(): + def __init__(self,widget,texto,files,estado,box): + Ventana = gtk.FileSelection("Abrir..") + + Ventana.set_default_response(gtk.RESPONSE_OK) + + Estado = estado + Echo = Ventana.run() + if Echo == gtk.RESPONSE_OK: + File = Ventana.get_filename() + Ventana.destroy() + texto.set_text(File) + texto.show() + estado = False + elif Echo == gtk.RESPONSE_CANCEL: + box.hide() + Ventana.destroy() +#COPIADO DE JAMEDIA - FLAVIO DANESSE # +def describe_archivo(archivo): + """ Devuelve el tipo de un archivo (imagen, video, texto). + -z, --uncompress para ver dentro de los zip.""" + + datos = commands.getoutput('file -b %s%s%s' % ("\"", archivo, "\"")) + datostr = str(datos) + final = datostr.lower() + return final +# Esto ya no es parte de jamedia# +def describe_mime(archivo): + datos = commands.getoutput('file --mime-type -b %s%s%s' % ("\"", archivo, "\"")) + return str(datos) + +def Boton(tooltip=None,icon=None,connect=None): + if icon != None: + Boton = ToolButton(icon) + else: + Boton = ToolButton('gtk-missing-image') + if tooltip != None: + Boton.set_tooltip(tooltip) + if connect != None: + Boton.connect("clicked",connect) + return Boton +def decompress(archivo,box, destino='/tmp/Compress/Work',estado='Abrir',diario=False): + Archivod = os.getcwd()+"/"+archivo + # PARTE CONFUSA # + if not diario: + Mensaje = _("""Ups! Parece que el archivo esta dañado.O no es un zip ..Porfavor intente con otro""") + else: + Mensaje = _("""Oh..Parece que no selecciono un archivo zip""") + # SI EL ESTADO ES ABRIR BORRA LOS DIRECTORIOS # + if estado == 'Abrir': + shutil.rmtree(destino) + os.mkdir(destino) + else: + pass + # ACA ABRE # + archivo = open(archivo) + try: + zipped = zipfile.ZipFile(archivo) + except zipfile.BadZipfile: + info = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK,message_format=Mensaje) + a = info.run() + if a == gtk.RESPONSE_OK: + info.destroy() + box.hide() + try: + zipped.extractall(destino) + os.chdir(destino) + + except RuntimeError: + info = gtk.MessageDialog(type=gtk.MESSAGE_WARNING, buttons=gtk.BUTTONS_OK,message_format=_("Archivos con contraseña aún no han sido implementados")) + a = info.run() + if a == gtk.RESPONSE_OK: + info.destroy() + +def compress(archivos_a_meter, archivo): + zipped = zipfile.ZipFile(archivo, mode='a') + # VARIOS ARCHIVOS # + if os.path.isdir(os.getcwd()+"/"+archivos_a_meter): + zipped = directory("./"+archivos_a_meter, zipped) + else: + zipped.write(archivos_a_meter) +def directory(dirname, zipped): + for x in os.listdir(dirname): + zipped.write(dirname+"/"+x) + if os.path.isdir(dirname+"/"+x): + zipped = directory(dirname+"/"+x, zipped) + return zipped diff --git a/utils3.py b/utils3.py new file mode 100644 index 0000000..aad326d --- /dev/null +++ b/utils3.py @@ -0,0 +1,160 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# utils.py +# +# Copyright 2012 Rafael Cordano <rafael.cordano@gmail.com> +# Copyright 2012 Ignacio Rodríguez <nachoel01@gmail.com> +# Copyright 2012 Ezequiel Pereira <eze2307@gmail.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. +# +# +from gi.repository import Gtk +import zipfile +import utils3 as utils +import commands +from sugar3.graphics.toolbutton import ToolButton +import os, shutil +from gettext import gettext as _ +try: + os.mkdir('/tmp/Compress') + os.mkdir('/tmp/Compress/Work') +except: + pass +Archivos = None +Archivo_d = None +Dir = False +DirName = None +def Descomprimir(Archivo): + pass + +class Abrir(): + def __init__(self,box,texto): + Ventana = Gtk.FileChooserDialog("Abrir..", + None, + Gtk.FileChooserAction.OPEN, + (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, + Gtk.STOCK_OK, Gtk.ResponseType.OK)) + + Ventana.set_default_response(Gtk.ResponseType.OK) + + Filtro = Gtk.FileFilter() + Filtro.set_name("Archivos ZIP") + Filtro.add_pattern("*.zip") + Ventana.add_filter(Filtro) + + Echo = Ventana.run() + if Echo == Gtk.ResponseType.OK: + File = Ventana.get_filename() + utils.Archivo_d = File + try: + decompress(File,box) + os.chdir('/tmp/Compress/Work') + Ventana.destroy() + except: + Ventana.destroy() + + elif Echo == Gtk.ResponseType.CANCEL: + Ventana.destroy() + + +class Abrir_Directorio(): + def __init__(self,widget,texto,files,estado,box): + Ventana = Gtk.FileSelection("Abrir..") + + Ventana.set_default_response(Gtk.ResponseType.OK) + + Estado = estado + Echo = Ventana.run() + if Echo == Gtk.ResponseType.OK: + File = Ventana.get_filename() + Ventana.destroy() + texto.set_text(File) + texto.show() + estado = False + elif Echo == Gtk.ResponseType.CANCEL: + box.hide() + Ventana.destroy() +#COPIADO DE JAMEDIA - FLAVIO DANESSE # +def describe_archivo(archivo): + """ Devuelve el tipo de un archivo (imagen, video, texto). + -z, --uncompress para ver dentro de los zip.""" + + datos = commands.getoutput('file -b %s%s%s' % ("\"", archivo, "\"")) + datostr = str(datos) + final = datostr.lower() + return final +# Esto ya no es parte de jamedia# +def describe_mime(archivo): + datos = commands.getoutput('file --mime-type -b %s%s%s' % ("\"", archivo, "\"")) + return str(datos) + +def Boton(tooltip=None,icon=None,connect=None): + if icon != None: + Boton = ToolButton(icon) + else: + Boton = ToolButton('gtk-missing-image') + if tooltip != None: + Boton.set_tooltip(tooltip) + if connect != None: + Boton.connect("clicked",connect) + return Boton +def decompress(archivo,box, destino='/tmp/Compress/Work',estado='Abrir',diario=False): + Archivod = os.getcwd()+"/"+archivo + # PARTE CONFUSA # + if not diario: + Mensaje = _("""Ups! Parece que el archivo esta dañado.O no es un zip ..Porfavor intente con otro""") + else: + Mensaje = _("""Oh..Parece que no selecciono un archivo zip""") + # SI EL ESTADO ES ABRIR BORRA LOS DIRECTORIOS # + if estado == 'Abrir': + shutil.rmtree(destino) + os.mkdir(destino) + else: + pass + # ACA ABRE # + archivo = open(archivo) + try: + zipped = zipfile.ZipFile(archivo) + except zipfile.BadZipfile: + info = Gtk.MessageDialog(type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK,message_format=Mensaje) + a = info.run() + if a == Gtk.ResponseType.OK: + info.destroy() + box.hide() + try: + zipped.extractall(destino) + os.chdir(destino) + + except RuntimeError: + info = Gtk.MessageDialog(type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK,message_format=_("Archivos con contraseña aún no han sido implementados")) + a = info.run() + if a == Gtk.ResponseType.OK: + info.destroy() + +def compress(archivos_a_meter, archivo): + zipped = zipfile.ZipFile(archivo, mode='a') + # VARIOS ARCHIVOS # + if os.path.isdir(os.getcwd()+"/"+archivos_a_meter): + zipped = directory("./"+archivos_a_meter, zipped) + else: + zipped.write(archivos_a_meter) +def directory(dirname, zipped): + for x in os.listdir(dirname): + zipped.write(dirname+"/"+x) + if os.path.isdir(dirname+"/"+x): + zipped = directory(dirname+"/"+x, zipped) + return zipped |