Scribus
Open source desktop publishing at your fingertips
resourcecollection.h
1 /*
2  For general Scribus (>=1.3.2) copyright and licensing information please refer
3  to the COPYING file provided with the program. Following this notice may exist
4  a copyright and/or license notice that predates the release of Scribus 1.3.2
5  for which a new license (GPL+exception) is in place.
6  */
7 /***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15 
16 
17 #ifndef RESOURCE_COLLECTION_H
18 #define RESOURCE_COLLECTION_H
19 
20 #include <QList>
21 #include <QMap>
22 #include <QString>
23 #include "vgradient.h"
24 
25 class ColorList;
26 class SCFonts;
27 
42 {
43 public:
44  void collectFont(const QString& name) { if (!name.isEmpty()) m_fonts.insert(name,name); }
45  void collectPattern(const QString& name) { if (!name.isEmpty()) m_patterns.insert(name,name); }
46  void collectColor(const QString& name) { if (!name.isEmpty()) m_colors.insert(name,name); }
47  void collectGradient(const QString& name) { if (!name.isEmpty()) m_gradients.insert(name,name); }
48  void collectStyle(const QString& name) { if (!name.isEmpty()) m_pstyles.insert(name,name); }
49  void collectCharStyle(const QString& name) { if (!name.isEmpty()) m_cstyles.insert(name,name); }
50  void collectLineStyle(const QString& name) { if (!name.isEmpty()) m_linestyles.insert(name,name); }
51  void collectTableStyle(const QString& name) { if (!name.isEmpty()) m_tableStyles.insert(name,name); }
52  void collectCellStyle(const QString& name) { if (!name.isEmpty()) m_cellStyles.insert(name,name); }
53 
54  void mapFont(const QString& oldname, const QString& newname) { m_fonts.insert(oldname, newname); }
55  void mapPattern(const QString& oldname, const QString& newname) { m_patterns.insert(oldname, newname); }
56  void mapColor(const QString& oldname, const QString& newname) { m_colors.insert(oldname, newname); }
57  void mapGradients(const QString& oldname, const QString& newname) { m_gradients.insert(oldname, newname); }
58  void mapStyle(const QString& oldname, const QString& newname) { m_pstyles.insert(oldname, newname); }
59  void mapCharStyle(const QString& oldname, const QString& newname) { m_cstyles.insert(oldname, newname); }
60  void mapLineStyle(const QString& oldname, const QString& newname) { m_linestyles.insert(oldname, newname); }
61  void mapTableStyle(const QString& oldname, const QString& newname) { m_tableStyles.insert(oldname, newname); }
62  void mapCellStyle(const QString& oldname, const QString& newname) { m_cellStyles.insert(oldname, newname); }
63 
64  void mapFonts(const QMap<QString,QString>& newnames) { m_fonts = newnames; }
65  void mapPatterns(const QMap<QString,QString>& newnames) { m_patterns = newnames; }
66  void mapColors(const QMap<QString,QString>& newnames) { m_colors = newnames; }
67  void mapGradients(const QMap<QString,QString>& newnames) { m_gradients = newnames; }
68  void mapStyles(const QMap<QString,QString>& newnames) { m_pstyles = newnames; }
69  void mapCharStyles(const QMap<QString,QString>& newnames) { m_cstyles = newnames; }
70  void mapLineStyles(const QMap<QString,QString>& newnames) { m_linestyles = newnames; }
71  void mapTableStyles(const QMap<QString,QString>& newnames) { m_tableStyles = newnames; }
72  void mapCellStyles(const QMap<QString,QString>& newnames) { m_cellStyles = newnames; }
73 
74  const QMap<QString, QString>& fonts() { return m_fonts; }
75  const QMap<QString, QString>& patterns() { return m_patterns; }
76  const QMap<QString, QString>& colors() { return m_colors; }
77  const QMap<QString, QString>& gradients() { return m_gradients; }
78  const QMap<QString, QString>& styles() { return m_pstyles; }
79  const QMap<QString, QString>& charStyles() { return m_cstyles; }
80  const QMap<QString, QString>& lineStyles() { return m_linestyles; }
81  const QMap<QString, QString>& tableStyles() { return m_tableStyles; }
82  const QMap<QString, QString>& cellStyles() { return m_cellStyles; }
83 
84  QList<QString> fontNames() const { return m_fonts.keys(); }
85  QList<QString> patternNames() const { return m_patterns.keys(); }
86  QList<QString> colorNames() const { return m_colors.keys(); }
87  QList<QString> gradientNames() const { return m_gradients.keys(); }
88  QList<QString> styleNames() const { return m_pstyles.keys(); }
89  QList<QString> charStyleNames() const { return m_cstyles.keys(); }
90  QList<QString> lineStyleNames() const { return m_linestyles.keys(); }
91  QList<QString> tableStyleNames() const { return m_tableStyles.keys(); }
92  QList<QString> cellStyleNames() const { return m_cellStyles.keys(); }
93 
94  // modifies newNames so that forall x in both newNames.key() and in existingNames, newNames[x] will map to a new unique name
95  static void makeUnique(QMap<QString,QString>& newNames, const QList<QString> existingNames);
96 
97  void makeNamedResourcesUnique(ResourceCollection& other);
98 
99  SCFonts* availableFonts;
100  ColorList* availableColors;
101  QMap<QString, VGradient> *availableGradients;
102 private:
103  QMap<QString,QString> m_fonts;
104  QMap<QString,QString> m_patterns;
105  QMap<QString,QString> m_colors;
106  QMap<QString,QString> m_gradients;
107  QMap<QString,QString> m_pstyles;
108  QMap<QString,QString> m_cstyles;
109  QMap<QString,QString> m_linestyles;
110  QMap<QString,QString> m_tableStyles;
111  QMap<QString,QString> m_cellStyles;
112 };
113 
114 
115 #endif
Definition: sccolor.h:155
Definition: resourcecollection.h:41
Main class SCFonts. Subclass of QDict. This class replaces the previous SCFonts typedef...
Definition: scfonts.h:36