QGIS API Documentation  2.7.0-Master
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
qgscomposerlegendstyle.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgscomposerlegendstyle.cpp
3  ---------------------
4  begin : March 2013
5  copyright : (C) 2013 by Radim Blazek
6  email : radim.blazek@gmail.com
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #include "qgscomposerlegendstyle.h"
19 #include "qgscomposition.h"
20 #include <QFont>
21 #include <QMap>
22 #include <QSettings>
23 #include <QString>
24 #include <QDomElement>
25 #include <QDomDocument>
26 #include <QDomNode>
27 
29 {
30  //get default composer font from settings
31  QSettings settings;
32  QString defaultFontString = settings.value( "/Composer/defaultFont" ).toString();
33  if ( !defaultFontString.isEmpty() )
34  {
35  mFont.setFamily( defaultFontString );
36  }
37 }
38 
40 {
41 }
42 
43 void QgsComposerLegendStyle::setMargin( double margin )
44 {
45  mMarginMap[Top] = margin;
46  mMarginMap[Bottom] = margin;
47  mMarginMap[Left] = margin;
48  mMarginMap[Right] = margin;
49 }
50 
51 void QgsComposerLegendStyle::writeXML( QString name, QDomElement& elem, QDomDocument & doc ) const
52 {
53  if ( elem.isNull() ) return;
54 
55  QDomElement styleElem = doc.createElement( "style" );
56 
57  styleElem.setAttribute( "name", name );
58 
59  if ( mMarginMap[Top] != 0 ) styleElem.setAttribute( "marginTop", QString::number( mMarginMap[Top] ) );
60  if ( mMarginMap[Bottom] != 0 ) styleElem.setAttribute( "marginBottom", QString::number( mMarginMap[Bottom] ) );
61  if ( mMarginMap[Left] != 0 ) styleElem.setAttribute( "marginLeft", QString::number( mMarginMap[Left] ) );
62  if ( mMarginMap[Right] != 0 ) styleElem.setAttribute( "marginRight", QString::number( mMarginMap[Right] ) );
63 
64  styleElem.setAttribute( "font", mFont.toString() );
65 
66  elem.appendChild( styleElem );
67 }
68 
69 void QgsComposerLegendStyle::readXML( const QDomElement& elem, const QDomDocument& doc )
70 {
71  Q_UNUSED( doc );
72  if ( elem.isNull() ) return;
73 
74  mFont.fromString( elem.attribute( "font" ) );
75 
76  mMarginMap[Top] = elem.attribute( "marginTop", "0" ).toDouble();
77  mMarginMap[Bottom] = elem.attribute( "marginBottom", "0" ).toDouble();
78  mMarginMap[Left] = elem.attribute( "marginLeft", "0" ).toDouble();
79  mMarginMap[Right] = elem.attribute( "marginRight", "0" ).toDouble();
80 }
81 
83 {
84  switch ( s )
85  {
86  case Undefined:
87  return "";
88  case Hidden:
89  return "hidden";
90  case Title:
91  return "title";
92  case Group:
93  return "group";
94  case Subgroup:
95  return "subgroup";
96  case Symbol:
97  return "symbol";
98  case SymbolLabel:
99  return "symbolLabel";
100  }
101  return "";
102 }
103 
105 {
106  if ( styleName == "hidden" ) return Hidden;
107  else if ( styleName == "title" ) return Title;
108  else if ( styleName == "group" ) return Group;
109  else if ( styleName == "subgroup" ) return Subgroup;
110  else if ( styleName == "symbol" ) return Symbol;
111  else if ( styleName == "symbolLabel" ) return SymbolLabel;
112  return Undefined;
113 }
114 
116 {
117  switch ( s )
118  {
119  case Undefined:
120  return QObject::tr( "Undefined" );
121  case Hidden:
122  return QObject::tr( "Hidden" );
123  case Title:
124  return QObject::tr( "Title" );
125  case Group:
126  return QObject::tr( "Group" );
127  case Subgroup:
128  return QObject::tr( "Subgroup" );
129  case Symbol:
130  return QObject::tr( "Symbol" );
131  case SymbolLabel:
132  return QObject::tr( "Symbol label" );
133  }
134  return "";
135 }
void readXML(const QDomElement &elem, const QDomDocument &doc)
void setMargin(Side side, double margin)
static QString styleName(Style s)
Get name for style, used in project file.
static QString styleLabel(Style s)
Get style label, translated, used in UI.
static Style styleFromName(QString styleName)
Get style from name, used in project file.
void writeXML(QString name, QDomElement &elem, QDomDocument &doc) const
#define tr(sourceText)