Ankündigung

Einklappen
Keine Ankündigung bisher.

Integration der "neuen" Icons vom knx-uf-iconset

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Chris M.
    antwortet
    @daviid, leicht OT:
    Bei Deinem Commit 1201 hast Du die orangenen Icons mit neuem Namen eingebaut - IMHO so "dirty", dass man da nicht von Fix sprechen sollte...

    Es gibt ja extra die Falvours für (z.B.) die Farbe.

    => Wenn sollten die mal befüllt werden (vgl. 'audio_audio')

    Und dann das <icon> Element um ein Flavour-Attribut, so dass man das lokal überschreiben kann. (Da hatten wir, glaub ich, im Forum schon mal drüber gesprochen)

    Einen Kommentar schreiben:


  • daviid
    antwortet
    OK, aktuell scheinen hier drin ALLE derzeit vorhandenen Icons zu liegen, allerdings als PNG.

    Vlt. kann mfd ja mal wieder alle als einzelne SVGs zur verfügung stellen, die müsste man doch theoretisch Alle relativ leicht einfärben und auf die gewünschte Größe bringen können und das auch noch automatisch, oder?

    Einen Kommentar schreiben:


  • Chris M.
    antwortet
    Zitat von daviid Beitrag anzeigen
    Wer hat dass denn letztes mal gemacht?
    Hm, ich glaube das war ich. Ich weiß aber nicht mehr wie genau...

    Dieses Script hatte ich aber verwendet um aus einer großen Sammel-SVG die einzelnen Dateien zu erzeugen:

    Code:
    #!/usr/bin/python
    
    ## -----------------------------------------------------
    ## spliticons.py
    ## -----------------------------------------------------
    ## Copyright (c) 2011, Christian Mayer, All rights reserved.
    ##
    ## 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, see <http://www.gnu.de/documents/gpl-3.0.de.html>.
    
    
    from optparse import OptionParser
    import xml.etree.ElementTree as ET # requires Python 2.5
    import os
    
    version = '0.1'
    
    def main():
        usage = "usage: %prog [options] iconset.svg"
        parser = OptionParser(usage=usage, version=("%prog " + version))
        parser.add_option("-v", "--verbose",
                         action="store_true", dest="verbose", default=True,
                  help="Show more information")
        (options, args) = parser.parse_args()
        if len(args) != 1:
            parser.error("incorrect number of arguments")
        iconset = args[0]
        outdir = iconset.replace( '.svg', '' ) # FIXME should be parameter!
        
        # get the SVG content
        tree = ET.parse( iconset )
        ET.register_namespace( 'svg', 'http://www.w3.org/2000/svg' )
        ET.register_namespace( 'xlink', 'http://www.w3.org/1999/xlink' )
        #ET.dump( tree )
        
        # create the output directoy
        if not os.path.exists( outdir ):
          os.makedirs( outdir )
    
        # Figure out the different backgrounds and overlays
        backgrounds = []
        overlays    = []
        for i in tree.iterfind( '*' ): # only top level
          if 'id' in i.attrib:
            if i.attrib['id'].startswith( 'Background' ):
              backgrounds.append( i.attrib['id'] )
            elif i.tag.endswith( 'g' ):
              overlays.append( i.attrib['id'] )
        
        # create output
        for background in backgrounds:
          backgroundElement = tree.find( '*[@id="%s"]' % background )
          
          for overlay in overlays:
            overlayElement = tree.find( '*[@id="%s"]' % overlay )
            root = ET.Element( 'svg' )
            root.attrib = tree.getroot().attrib
            root.append( backgroundElement )
            root[0].set( 'display', 'inline' )
            root.append( overlayElement )
            root[1].set( 'display', 'inline' )
            outtree = ET.ElementTree( root )
            outFile = '%s/%s_%s.svg' % (outdir, background, overlay)
            outtree.write( outFile, encoding='UTF-8', xml_declaration=True )
    
    
    if __name__ == "__main__":
        main()

    Einen Kommentar schreiben:


  • oli_777
    antwortet
    Hallo,
    ich hatte mal vor einiger Zeit ein Script zum Export aus Illustrator als SVG an mfd geschickt, um alle Icos als SVG zu bekommen.

    Code:
     
    var doc = app.activeDocument;
    var start = true;
    var preffix = "Icon_";
    var suffix = "";
    var noname = "0";
    if (documents.length > 0){
    if (doc.saved==false) {
    alert('Dokument muss gespeichert sein vor Ausführun des Skripts!!!','saveLayersToSVG',true);
    start = false;
    }
    if (start){
    //Dateipfad über Dialogbox abfragen
    var destFolder = null;
    destFolder = Folder.selectDialog( 'Ordner für SVG-Dateien auswählen.', '~' );
    // Speicheroptionen festlegen
    var options
    options = this.getOptions();
     
    fullDocName = doc.fullName; 
    for (j=0; j<doc.layers.length; j++){ 
    if ((doc.layers[j].printable == true)&&(doc.layers[j].locked == false)) {
    doc.layers[j].locked = true;
    nameLayer = doc.layers[j].name;
    for (i=0; i<doc.layers.length; i++){ 
    if (doc.layers[i].locked == false){
    doc.layers[i].visible = true;
    doc.layers[i].remove();
    i = i-1;
    } 
    }
    for (i=0; i<doc.layers.length; i++){
    doc.layers[i].locked = false;
    doc.layers[i].visible = true;
    }
    var param = doc.name.split('.'); 
    realDocName = param[0]; 
    if (nameLayer == noname) docName = preffix+realDocName+suffix;
    else docName = preffix+realDocName+'_'+nameLayer+suffix; 
    var saveName = new File ( destFolder + "/" + docName );
    doc.exportFile(saveName, ExportType.SVG, options)
    doc.close(SaveOptions.DONOTSAVECHANGES);
    doc = null;
    app.open (fullDocName);
    doc = app.activeDocument;
    }
    } 
    alert( 'Dokumente als SVG gespeichert' );}
    }
    function getOptions()
    {
    var options = new ExportOptionsSVG();
     
    options.EmbedRasterImages = false;
    options.EmbedAllFonts = false;
    options.sVGTextOnPath = true;
    options.FontSubsetting = SVGFontSubsetting.GLYPHSUSED;
    options.DTD = SVGDTDVersion.SVGTINY1_1;
    options.PreserveEditability = false;
     
     
    return options;
    }
    Vielleicht kommt ja bald was als SVG....


    Gruß
    Oli

    Einen Kommentar schreiben:


  • netsrac
    antwortet
    Nunja, am "schönsten" wäre es, wenn man hier mal ein kleines Script schreibt, was das dann auf Knopfdruck macht: Also am besten per SVN die aktuellen Icons auschecken, resizen und die entsprechende JavaScript Datei bauen.

    Alles Andere ist wohl unsinniges gefummel :-)

    Just my 2 cents...

    Netsrac

    Einen Kommentar schreiben:


  • daviid
    antwortet
    Wie siehts eig aus, inzwischen gibts ja über 200 Icons, allerdings 480*480 groß und "nur" in weiß.

    Ich würde gerne mal wieder den aktuellen Stand des Icon-Sets in die richtige Größe bringen und auch zumindest noch Orange als Farbe hinzufügen, da es inzwischen doch verdammt viele icons gibt die ich gern verwenden will und ich eh grad am Visu bauen bin, bzw. umstellen auf Metal.

    Wenn mir jemand erklärt wie man das macht kann ich das auch gern einmal Monatlich oder so machen.

    Wer hat dass denn letztes mal gemacht?


    Gruß
    David

    Einen Kommentar schreiben:


  • makki
    antwortet
    So solls sein, merci

    Makki

    Einen Kommentar schreiben:


  • MicHau
    antwortet
    Ist schon erledigt.
    Ich war sowieso mit den Icons beschäftigt...

    Einen Kommentar schreiben:


  • makki
    antwortet
    Mach ich doch glatt
    https://sourceforge.net/tracker/?gro...6&atid=1251144
    (Obwohl ich selbst echt keine Icons für den NBF brauche.. Egal..)
    Es gibt eh keine Alternative oder anders, freundlicher gesagt: dank mfd wenigstens eine Option.
    In weiteren Designs kann (könnte) man das ja übersteuern..

    Makki

    Edit: und Kritiker: bitte verwechselt mir nicht Freibier mit GPL oder CC-*.. Das ist zweierlei, auch wenns der Anwalt (noch) nicht versteht

    Einen Kommentar schreiben:


  • Chris M.
    antwortet
    Naja, bis jetzt bin ich davon ausgegangen, dass jedes Design seine eigenen Vorstellungen von Icons hat. (Wenn man sich mal so etwa wie KDE ansieht, dann merkt man, dass es wohl sogar mehr Icons als Designs gibt...)

    Da das Icon-Set von MFD allerdings schön reduziert ist und sich so wohl mit vielen Designs vertragen sollte, ist das als globales Default tatsächlich eine Überlegung wert.
    (Kannst Du sicherheitshalber mal einen Feature Request eintragen?)

    Einen Kommentar schreiben:


  • makki
    antwortet
    Macht sicherlich Sinn, sollte auf die Liste fürs nächste Release..

    Makki

    Einen Kommentar schreiben:


  • netsrac
    antwortet
    Mal 'ne ganz doofe Frage....habe gesehen, dass die Icons in jedem Design auf's Neue definiert sind.

    Wieso erstellt man nicht eine "global_icons.js" und bindet die in alle Designs ein?! Dann hätte man die "Arbeit" nur einmal. Zumal es dann auch unabhängig vom Design wäre. Sollte ein Design eigene Icons mitbringen, so können die ja immer noch "intern" definiert werden.

    Gruß, Netsrac

    Einen Kommentar schreiben:


  • Chris M.
    antwortet
    Gute Idee - kann man gut in den Release-Prozess einbauen.

    Hinweis für die Anwender:
    Das ist nur relevant für Anwender der SVN-Version. Bei einem fertigen Release wird das schon eingebaut sein.

    (Oder man will mal zwischen den Releases die Icons manuell erweitern)

    Einen Kommentar schreiben:


  • JNK
    antwortet
    Da ichs gerade brauchte:


    Code:
    #!/usr/bin/perl
    #
    # make icon list for CV
    # (c) by Jan N. Klug, 2012 (jnk@knx-user-forum)
    #
    
    my $dirname = @ARGV[0];
    my $prefix = @ARGV[1];
    
    opendir my($dh), $dirname or die "Couldn't open dir '$dirname': $!";
    my @files = readdir $dh;
    closedir $dh;
    
    foreach (@files) {
     if (($_ ne ".") && ($_ ne "..")) {
       my $entry = "'$_': { '*':   { '*'         : 'white', \n    'white'     : { 'uri': '$prefix/$_'         , 'style': 'height: 2em;' } } }, \n";
       print $entry;
     }
    }
    Benutzung:

    makeicon.pl <verzeichnis in dem die icons liegen> <verezeichnis im webserver> > wohin.txt

    als z.B.

    makeicon.pl ~/visu-use/icon/knx-uf-iconset/raw /icon/knx-uf-iconset/raw > icon.lst

    Die Liste die dann daraus kommt braucht noch

    Code:
    icons.insert({
    davor und

    Code:
    });
    danach und muss dann die bisherige icon-Liste ersetzen (in design_setup.js)

    Mehrere Listen können einfach aneinandergehängt werden.

    Gruss,

    der Jan

    Einen Kommentar schreiben:


  • Chris M.
    antwortet
    Zitat von mfd Beitrag anzeigen
    Das erfordert aber vermutlich, dass es sich auch um ein Objekt handelt.
    Nö, nicht zwingend. Wenn man z.B. definiert, dass #FF0000 immer durch Vordergrund, #00FF00 durch Kontrast und #0000FF durch Hintergrundfarbe ersetzt werden soll, dann macht das ein Skript mit links.

    Einen Kommentar schreiben:

Lädt...
X