52
51
/// \internal d-pointer class.
53
52
class ScriptingModule::Private
56
QPointer<KSpread::Doc> doc;
57
QHash< QString, ScriptingFunction* > functions;
58
QStringList functionnames;
55
QPointer<KSpread::Doc> doc;
56
QHash< QString, ScriptingFunction* > functions;
57
QStringList functionnames;
61
60
ScriptingModule::ScriptingModule(QObject* parent)
62
: KoScriptingModule(parent, "KSpread")
61
: KoScriptingModule(parent, "KSpread")
68
67
ScriptingModule::~ScriptingModule()
70
kDebug() <<"ScriptingModule::~ScriptingModule()";
69
kDebug() << "ScriptingModule::~ScriptingModule()";
74
73
KSpread::View* ScriptingModule::kspreadView()
76
return dynamic_cast< KSpread::View* >( KoScriptingModule::view() );
75
return dynamic_cast< KSpread::View* >(KoScriptingModule::view());
79
78
KSpread::Doc* ScriptingModule::kspreadDoc()
82
if( KSpread::View* v = kspreadView() )
85
d->doc = new KSpread::Doc(0, this);
81
if (KSpread::View* v = kspreadView())
84
d->doc = new KSpread::Doc(0, this);
90
89
KoDocument* ScriptingModule::doc()
95
94
QObject* ScriptingModule::map()
97
return kspreadDoc()->map()->findChild< KSpread::MapAdaptor* >();
96
return kspreadDoc()->map()->findChild< KSpread::MapAdaptor* >();
100
99
QObject* ScriptingModule::view()
102
KSpread::View* v = kspreadView();
103
return v ? v->findChild< KSpread::ViewAdaptor* >() : 0;
101
KSpread::View* v = kspreadView();
102
return v ? v->findChild< KSpread::ViewAdaptor* >() : 0;
106
105
QObject* ScriptingModule::currentSheet()
113
112
QObject* ScriptingModule::sheetByName(const QString& name)
115
if(kspreadDoc()->map())
116
foreach(KSpread::Sheet* sheet, kspreadDoc()->map()->sheetList())
117
if(sheet->sheetName() == name)
118
return sheet->findChild< KSpread::SheetAdaptor* >();
114
if (kspreadDoc()->map())
115
foreach(KSpread::Sheet* sheet, kspreadDoc()->map()->sheetList()) {
116
if (sheet->sheetName() == name) {
117
return sheet->findChild< KSpread::SheetAdaptor* >(); {
122
124
QStringList ScriptingModule::sheetNames()
125
foreach(KSpread::Sheet* sheet, kspreadDoc()->map()->sheetList())
126
names.append(sheet->sheetName());
127
foreach(KSpread::Sheet* sheet, kspreadDoc()->map()->sheetList()) {
128
names.append(sheet->sheetName());
130
133
bool ScriptingModule::hasFunction(const QString& name)
132
return d->functions.contains(name);
135
return d->functions.contains(name);
135
138
QObject* ScriptingModule::function(const QString& name)
137
if( d->functions.contains(name) )
138
return d->functions[name];
139
ScriptingFunction* function = new ScriptingFunction(this);
140
function->setName(name);
141
d->functions.insert(name, function);
142
d->functionnames.append(name);
140
if (d->functions.contains(name))
141
return d->functions[name];
142
ScriptingFunction* function = new ScriptingFunction(this);
143
function->setName(name);
144
d->functions.insert(name, function);
145
d->functionnames.append(name);
146
149
QObject* ScriptingModule::createListener(const QString& sheetname, const QString& range)
148
151
KSpread::Sheet* sheet = kspreadDoc()->map()->findSheet(sheetname);
149
if( ! sheet ) return 0;
152
if (! sheet) return 0;
150
153
KSpread::Region region(range, kspreadDoc()->map(), sheet);
151
154
QRect r = region.firstRange();
152
155
return new KSpread::ScriptingCellListener(sheet, r.isNull() ? sheet->usedArea() : r);
155
158
bool ScriptingModule::fromXML(const QString& xml)
157
KoXmlDocument xmldoc;
158
if(! xmldoc.setContent(xml, true))
160
return kspreadDoc()->loadXML(xmldoc, 0);
160
KoXmlDocument xmldoc;
161
if (! xmldoc.setContent(xml, true))
163
return kspreadDoc()->loadXML(xmldoc, 0);
163
166
QString ScriptingModule::toXML()
165
return kspreadDoc()->saveXML().toString(2);
168
return kspreadDoc()->saveXML().toString(2);
168
171
bool ScriptingModule::openUrl(const QString& url)
173
176
bool ScriptingModule::saveUrl(const QString& url)
175
return kspreadDoc()->saveAs(url);
178
return kspreadDoc()->saveAs(url);
178
181
bool ScriptingModule::importUrl(const QString& url)
180
return kspreadDoc()->importDocument(url);
183
return kspreadDoc()->importDocument(url);
183
186
bool ScriptingModule::exportUrl(const QString& url)
185
return kspreadDoc()->exportDocument(url);
188
return kspreadDoc()->exportDocument(url);
188
191
QObject* ScriptingModule::reader()
198
201
QWidget* ScriptingModule::createSheetsListView(QWidget* parent)
200
ScriptingSheetsListView* listview = new ScriptingSheetsListView(this, parent);
201
if( parent && parent->layout() )
202
parent->layout()->addWidget(listview);
203
ScriptingSheetsListView* listview = new ScriptingSheetsListView(this, parent);
204
if (parent && parent->layout())
205
parent->layout()->addWidget(listview);
206
209
#include "ScriptingModule.moc"