]> git.sven.stormbind.net Git - sven/vym.git/blob - command.cpp
Import Upstream version 2.6.11
[sven/vym.git] / command.cpp
1 #include "command.h"
2
3 #include <QDebug>
4 Command::Command (const QString &n, SelectionType st)
5 {
6     name=n;
7     selectionType=st;
8 }
9
10 QString Command::getName()
11 {
12     return name;
13 }
14
15 QString Command::getDescription()
16 {
17     QString s;
18     s=QString("%1\n").arg(name);
19     s+=QString("  Selection: %1\n").arg(getSelectionTypeName());
20     //s+=QString(" Parameters: %1\n").arg(parCount() );
21     for (int i=0;i<parCount();i++)
22     {
23         s+=QString("   Parameter %1:\n").arg(i);
24         s+=QString("        Comment: %1\n").arg(getParComment(i));
25         s+=QString("           Type: %1\n").arg(getParTypeName(i));
26         s+=QString("       Optional: ");
27         isParOptional(i) ? s+="yes\n" :s+="No\n";
28     }
29     return s;
30 }
31
32 QString Command::getDescriptionLaTeX()
33 {
34     QString s;
35     s=QString("\\item %1\\\\\n").arg(name);
36     s+="\\begin{tabular}{rl}\n";
37     s+=QString("  Selection: & %1\\\\\n").arg(getSelectionTypeName());
38     for (int i=0;i<parCount();i++)
39     {
40         s+=QString("   Parameter: &  %1:\\\\\n").arg(i);
41         s+=QString("        Comment: & %1\\\\\n").arg(getParComment(i));
42         s+=QString("           Type: & %1\\\\\n").arg(getParTypeName(i));
43         s+=QString("       Optional: &  ");
44         isParOptional(i) ? s+="yes\\\\\n" :s+="No\\\\\n";
45     }
46     s+="\\end{tabular}\n";
47     return s;
48 }
49
50 void Command::addPar (ParameterType t, bool opt, const QString &c)  
51 {
52     parTypes.append (t);
53     parOpts.append (opt);
54     parComments.append (c);
55 }
56
57 int Command::parCount()
58 {
59     return parTypes.count();
60 }
61
62 Command::ParameterType Command::getParType (int n)
63 {
64     if (n>=0 && n<parTypes.count() )
65     {
66         return parTypes.at(n);
67     }
68     qDebug()<<"Command::getParType n out of range";
69     return Undefined;
70 }
71
72 QString Command::getParTypeName (int n)
73 {
74     switch (getParType(n))
75     {
76         case String: return "String";
77         case Int: return "Int";
78         case Double: return "Double";
79         case Color: return "Color";
80         case Bool: return "Bool";
81         default: return "Undefined";
82     }
83 }
84
85 Command::SelectionType Command::getSelectionType ()
86 {
87     return selectionType;
88 }
89
90 QString Command::getSelectionTypeName ()
91 {
92     switch (getSelectionType())
93     {
94         case Any: return "Any";
95         case TreeItem: return "TreeItem";
96         case Branch: return "Branch";
97         case BranchLike: return "BranchLike";
98         case Image: return "Image";
99         case BranchOrImage: return "BranchOrImage";
100         case XLink: return "XLink";
101         default: return "Undefined";
102     }
103 }
104
105 bool Command::isParOptional (int n)
106 {
107     if (n>=0 && n<parTypes.count() )
108     {
109         return parOpts.at(n);
110     }
111     qDebug()<<"Command::isParOpt n out of range";
112     return false;
113 }
114
115 QString Command::getParComment(int n)
116 {
117     if (n>=0 && n<parTypes.count() )
118     {
119         return parComments.at(n);
120     }
121     qDebug()<<"Command::getParComment n out of range";
122     return QString();
123 }