本文整理汇总了C++中KoXmlElement::nextSibling方法的典型用法代码示例。如果您正苦于以下问题:C++ KoXmlElement::nextSibling方法的具体用法?C++ KoXmlElement::nextSibling怎么用?C++ KoXmlElement::nextSibling使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KoXmlElement
的用法示例。
在下文中一共展示了KoXmlElement::nextSibling方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: unknownShiftDirection
// static
bool PasteCommand::unknownShiftDirection(const QMimeData *mimeData)
{
if (!mimeData) {
return false;
}
QByteArray byteArray;
if (mimeData->hasFormat("application/x-kspread-snippet")) {
byteArray = mimeData->data("application/x-kspread-snippet");
} else {
return false;
}
QString errorMsg;
int errorLine;
int errorColumn;
KoXmlDocument d;
if (!d.setContent(byteArray, false, &errorMsg, &errorLine, &errorColumn)) {
// an error occurred
kDebug() << "An error occurred."
<< "line:" << errorLine << "col:" << errorColumn << errorMsg;
return false;
}
KoXmlElement e = d.documentElement();
if (!e.namedItem("columns").toElement().isNull()) {
return false;
}
if (!e.namedItem("rows").toElement().isNull()) {
return false;
}
KoXmlElement c = e.firstChild().toElement();
for (; !c.isNull(); c = c.nextSibling().toElement()) {
if (c.tagName() == "cell") {
return true;
}
}
return false;
}
示例2: loadXML
bool Doc::loadXML(const KoXmlDocument& doc, KoStore*)
{
QPointer<KoUpdater> updater;
if (progressUpdater()) {
updater = progressUpdater()->startSubtask(1, "KSpread::Doc::loadXML");
updater->setProgress(0);
}
d->spellListIgnoreAll.clear();
// <spreadsheet>
KoXmlElement spread = doc.documentElement();
if (spread.attribute("mime") != "application/x-kspread" && spread.attribute("mime") != "application/vnd.kde.kspread") {
setErrorMessage(i18n("Invalid document. Expected mimetype application/x-kspread or application/vnd.kde.kspread, got %1" , spread.attribute("mime")));
return false;
}
bool ok = false;
int version = spread.attribute("syntaxVersion").toInt(&ok);
map()->setSyntaxVersion(ok ? version : 0);
if (map()->syntaxVersion() > CURRENT_SYNTAX_VERSION) {
int ret = KMessageBox::warningContinueCancel(
0, i18n("This document was created with a newer version of Calligra Sheets (syntax version: %1)\n"
"When you open it with this version of Calligra Sheets, some information may be lost.", map()->syntaxVersion()),
i18n("File Format Mismatch"), KStandardGuiItem::cont());
if (ret == KMessageBox::Cancel) {
setErrorMessage("USER_CANCELED");
return false;
}
}
// <locale>
KoXmlElement loc = spread.namedItem("locale").toElement();
if (!loc.isNull())
static_cast<Localization*>(map()->calculationSettings()->locale())->load(loc);
if (updater) updater->setProgress(5);
KoXmlElement defaults = spread.namedItem("defaults").toElement();
if (!defaults.isNull()) {
double dim = defaults.attribute("row-height").toDouble(&ok);
if (!ok)
return false;
map()->setDefaultRowHeight(dim);
dim = defaults.attribute("col-width").toDouble(&ok);
if (!ok)
return false;
map()->setDefaultColumnWidth(dim);
}
KoXmlElement ignoreAll = spread.namedItem("SPELLCHECKIGNORELIST").toElement();
if (!ignoreAll.isNull()) {
KoXmlElement spellWord = spread.namedItem("SPELLCHECKIGNORELIST").toElement();
spellWord = spellWord.firstChild().toElement();
while (!spellWord.isNull()) {
if (spellWord.tagName() == "SPELLCHECKIGNOREWORD") {
d->spellListIgnoreAll.append(spellWord.attribute("word"));
}
spellWord = spellWord.nextSibling().toElement();
}
}
if (updater) updater->setProgress(40);
// In case of reload (e.g. from konqueror)
qDeleteAll(map()->sheetList());
map()->sheetList().clear();
KoXmlElement styles = spread.namedItem("styles").toElement();
if (!styles.isNull()) {
if (!map()->styleManager()->loadXML(styles)) {
setErrorMessage(i18n("Styles cannot be loaded."));
return false;
}
}
// <map>
KoXmlElement mymap = spread.namedItem("map").toElement();
if (mymap.isNull()) {
setErrorMessage(i18n("Invalid document. No map tag."));
return false;
}
if (!map()->loadXML(mymap)) {
return false;
}
// named areas
const KoXmlElement areaname = spread.namedItem("areaname").toElement();
if (!areaname.isNull())
map()->namedAreaManager()->loadXML(areaname);
//Backwards compatibility with older versions for paper layout
if (map()->syntaxVersion() < 1) {
KoXmlElement paper = spread.namedItem("paper").toElement();
if (!paper.isNull()) {
loadPaper(paper);
}
//.........这里部分代码省略.........
示例3: processXmlData
//.........这里部分代码省略.........
}
}
// Shift cells right.
if (m_insertMode == ShiftCellsRight) {
// Cases:
// Same as for ShiftCellsDown,
// except that clearing and inserting are exchanged for cases 2 and 3.
// Shifting a column to the right is the same as column insertion.
// Shifting a row to the right is the same as clearing the row.
if ((!noColumns && !noRows) || (noColumns && !noRows)) {
// Everything or only rows present.
DeleteCommand *const command = new DeleteCommand(this);
command->setSheet(m_sheet);
command->add(Region(pasteArea.x(), pasteArea.y(), pasteWidth, pasteHeight, sheet));
command->setMode(DeleteCommand::OnlyCells);
} else if (!noColumns && noRows) {
// Columns present.
InsertDeleteColumnManipulator *const command = new InsertDeleteColumnManipulator(this);
command->setSheet(sheet);
command->add(Region(pasteArea.x(), pasteArea.y(), pasteWidth, pasteHeight, sheet));
} else {
// Neither columns, nor rows present.
ShiftManipulator *const command = new ShiftManipulator(this);
command->setSheet(sheet);
command->add(Region(pasteArea.x(), pasteArea.y(), pasteWidth, pasteHeight, sheet));
command->setDirection(ShiftManipulator::ShiftRight);
}
}
// This command will collect as many cell loads as possible in the iteration.
PasteCellCommand *pasteCellCommand = 0;
KoXmlElement e = root.firstChild().toElement(); // "columns", "rows" or "cell"
for (; !e.isNull(); e = e.nextSibling().toElement()) {
// If the element is not a cell, unset the pasteCellCommand pointer.
// If existing, it is attached as child commnand, so no leaking here.
if (e.tagName() != "cell") {
pasteCellCommand = 0;
}
// entire columns given
if (e.tagName() == "columns" && !sheet->isProtected()) {
const int number = e.attribute("count").toInt();
if (m_insertMode == NoInsertion) {
// Clear the existing content; not the column style.
DeleteCommand *const command = new DeleteCommand(this);
command->setSheet(m_sheet);
const int col = e.attribute("column").toInt();
const int cols = qMax(pasteArea.width(), number);
const Region region(col + xOffset, 1, cols, KS_rowMax, m_sheet);
command->add(region);
command->setMode(DeleteCommand::OnlyCells);
}
// Set the column style.
ColumnFormat columnFormat;
columnFormat.setSheet(sheet);
KoXmlElement c = e.firstChild().toElement();
for (; !c.isNull(); c = c.nextSibling().toElement()) {
if (c.tagName() != "column") {
continue;
}
if (columnFormat.load(c, xOffset, m_pasteMode)) {
const int col = columnFormat.column();
const int cols = qMax(pasteArea.width(), number);
for (int coff = 0; col - xOffset + coff <= cols; coff += number) {