// 4) TRAINING void ResWaReport::BuildTrainingSection(QTextCursor& cursor) { cursor.movePosition(QTextCursor::End); cursor.insertBlock(); cursor.insertText("\n\n4) TRAINING & IN-SERVICES\n"); // VALUES int numTrainings; int numAttendingTrainings; CalculateTraining(numTrainings, numAttendingTrainings); // cursor.insertText("\t\t\t# of trainings: " + QString::number(numTrainings) + "\n"); // cursor.insertText("\t\t\t# attending trainings: " + QString::number(numAttendingTrainings) + "\n"); QTextTableFormat tableFormat; tableFormat.setHeaderRowCount(1); QVector<QTextLength> constraints; constraints << QTextLength(QTextLength::PercentageLength, 35); constraints << QTextLength(QTextLength::PercentageLength, 35); tableFormat.setColumnWidthConstraints(constraints); QTextTable *table = cursor.insertTable(2, 2, tableFormat); // HEADERS TextToCell(table, 0, 0, "# of trainings (observers)", &_tableTextFormat); TextToCell(table, 0, 1, "# attending trainings (all people in room)", &_tableTextFormat); // VALUES TextToCell(table, 1, 0, QString::number(numTrainings), &_tableCellBlue); TextToCell(table, 1, 1, QString::number(numAttendingTrainings), &_tableCellBlue); }
void MainWindow::onInsertTable(int rows, int columns, double width, bool relative) { qDebug() << "Insert table: rows = " << rows << ", columns = " << columns << ", width = " << width << ", relative = " << (relative ? "true" : "false"); QTextCursor cursor = ui->textEdit->textCursor(); QTextTableFormat tableFormat; QVector<QTextLength> columnWidthConstraints; columnWidthConstraints.reserve(columns); double averageColumnWidth = width / columns; if (relative) { for(int i = 0; i < columns; ++i) { QTextLength textLength(QTextLength::PercentageLength, averageColumnWidth); columnWidthConstraints.push_back(textLength); } } else { for(int i = 0; i < columns; ++i) { QTextLength textLength(QTextLength::FixedLength, averageColumnWidth); columnWidthConstraints.push_back(textLength); } } tableFormat.setColumnWidthConstraints(columnWidthConstraints); Q_UNUSED(cursor.insertTable(rows, columns, tableFormat)); }
/*! * \author Anders Fernström * \date 2005-12-19 * * \brief The class constructor * * 2006-03-03 AF, Updated function so cells are printed in tables, * so chapter numbers can be added to the left of the text. This * change remade large part of this function (and the rest of the * class). */ PrinterVisitor::PrinterVisitor( QTextDocument* doc, QPrinter* printer ) : ignore_(false), firstChild_(true), closedCell_(0), currentTableRow_(0), printer_(printer) { printEditor_ = new QTextEdit(); printEditor_->setDocument( doc ); // set table format QTextTableFormat tableFormat; tableFormat.setBorder( 0 ); tableFormat.setColumns( 2 ); tableFormat.setCellPadding( 2 ); // do not put the constraints on the columns. If we don't have chapter numbers we want to use the full space. // QVector<QTextLength> constraints; // constraints << QTextLength(QTextLength::PercentageLength, 20) // << QTextLength(QTextLength::PercentageLength, 80); // tableFormat.setColumnWidthConstraints(constraints); // insert the table QTextCursor cursor = printEditor_->textCursor(); table_ = cursor.insertTable(1, 2, tableFormat); }
void CPrint::addTable(QTextCursor &cursor,int rows,int cols,QStringList headers) { QTextTableFormat tableFormat; tableFormat.setBorder(1); tableFormat.setBorderStyle(QTextTableFormat::BorderStyle_Solid); tableFormat.setHeaderRowCount(1); QTextTable *table=cursor.insertTable(rows+1,cols,tableFormat); cursor.movePosition(QTextCursor::End); }
void MainWindow::on_insertTable_clicked() { InsertTableDialog dlg; if(dlg.exec() != QDialog::Accepted) return; QTextEdit *pEdit = textEditor.editor; QTextCursor cursor = pEdit->textCursor(); QTextTableFormat format; format.setCellSpacing(0); format.setCellPadding(5); cursor.insertTable(dlg.row(), dlg.column(), format); pEdit->setFocus(); }
void TestTableLayout::testMergedCells() { QTextCursor cursor = setupTest(); m_table = cursor.insertTable(3, 5); m_table->mergeCells(0,0,2,2); m_table->mergeCells(0,2,3,1); m_table->mergeCells(0,3,3,1); m_table->mergeCells(0,4,3,1); m_table->mergeCells(2,0,1,1); m_table->mergeCells(2,1,1,1); m_layout->layout(); QVERIFY(!dynamic_cast<MockRootAreaProvider*>(m_layout->provider())->m_askedForMoreThenOneArea); }
/*! \fn IRenderizador::hacerInforme() */ void IRenderizador::hacerInforme() { QTextCursor *cursor = new QTextCursor( _doc ); cursor->movePosition( QTextCursor::End ); // cargar la cabecera cursor->insertHtml( cargarCabecera() ); // Pongo la fecha del informe cursor->insertText( QString( "Fecha: %1.\n" ).arg( QDate::currentDate().toString( "dd/MM/yyyy" ) ) ); // Establecimiento en cuestion QSqlQuery *colaAuxiliar = new QSqlQuery(); colaAuxiliar->exec( QString("SELECT nombre FROM car_establecimientos WHERE id_establecimiento = '%1'").arg( _idEstablecimiento ) ); if( colaAuxiliar->next() ) { cursor->insertText( QString( "Establecimiento: %1\n" ).arg( colaAuxiliar->record().value(0).toString() ) ); } else { qDebug( "Error al ejecutar la cola de nombre de establecimiento" ); } // Busco las caravanas que estan en ese establecimiento colaAuxiliar->exec( QString( "SELECT codigo FROM car_caravana WHERE id_caravana IN ( SELECT id_caravana FROM car_carv_tri WHERE id_tri IN ( SELECT id_tri FROM car_tri WHERE ( id_estab_origen = '%1' OR id_estab_destino = '%1' ) AND razon IN ( 2, 3 ) ) )" ).arg( _idEstablecimiento ) ); if( colaAuxiliar->size() == 0 ) { cursor->movePosition( QTextCursor::End ); cursor->insertText( "\n\nNo existen resultados" ); } else { // Genero la tabla cursor->movePosition( QTextCursor::End ); tabla = cursor->insertTable( 1, 2 ); QTextTableFormat formatoTabla = tabla->format(); formatoTabla.setHeaderRowCount(1); tabla->setFormat( formatoTabla ); tabla->cellAt( 0,0 ).firstCursorPosition().insertHtml( "#Num" ); tabla->cellAt( 0,1 ).firstCursorPosition().insertHtml( "#Caravana" ); while( colaAuxiliar->next() ) { int pos = tabla->rows(); tabla->insertRows( pos, 1 ); tabla->cellAt( pos, 0 ).firstCursorPosition().insertHtml( QString( "%L1" ).arg( pos ) ); tabla->cellAt( pos, 1 ).firstCursorPosition().insertHtml( colaAuxiliar->record().value(0).toString() ); } } // fin else cola != 0 delete colaAuxiliar; delete cursor; return; }
// 2) CALLS void ResWaReport::BuildCallsSection(QTextCursor& cursor) { cursor.movePosition(QTextCursor::End); cursor.insertBlock(); cursor.insertText("\n\n2) CALLS (Information, Intake, and Referal Calls)\n", _headerFormat); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); QTextTableFormat tableFormat; QVector<QTextLength> constraints; constraints << QTextLength(QTextLength::PercentageLength, 40); constraints << QTextLength(QTextLength::PercentageLength, 40); tableFormat.setColumnWidthConstraints(constraints); QTextTable *table = cursor.insertTable(1, 2, tableFormat); TextToCell(table, 0, 0, "Total calls", &_tableTextFormat); TextToCell(table, 0, 1, QString::number(_totalCalls), &_tableCellBlue); }
QTextTable *ChatAreaWidget::getMsgTable() { if (tableFrmt == nullptr) { tableFrmt = new QTextTableFormat(); tableFrmt->setCellSpacing(2); tableFrmt->setBorderStyle(QTextFrameFormat::BorderStyle_None); tableFrmt->setColumnWidthConstraints({QTextLength(QTextLength::FixedLength,nameWidth), QTextLength(QTextLength::FixedLength,2), QTextLength(QTextLength::PercentageLength,100), QTextLength(QTextLength::FixedLength,2), QTextLength(QTextLength::VariableLength,0)}); } QTextCursor tc = textCursor(); tc.movePosition(QTextCursor::End); QTextTable *chatTextTable = tc.insertTable(1, 5, *tableFrmt); return chatTextTable; }
/*! * \author Anders Fernström * \date 2005-12-19 * * \brief The class constructor * * 2006-03-03 AF, Updated function so cells are printed in tables, * so chapter numbers can be added to the left of the text. This * change remade large part of this function (and the rest of the * class). */ PrinterVisitor::PrinterVisitor( QTextDocument* doc, QPrinter* printer ) : ignore_(false), firstChild_(true), closedCell_(0), currentTableRow_(0), printer_(printer) { printEditor_ = new QTextEdit(); printEditor_->setDocument( doc ); // set table format QTextTableFormat tableFormat; tableFormat.setBorder( 0 ); tableFormat.setColumns( 2 ); tableFormat.setCellPadding( 5 ); QVector<QTextLength> constraints; constraints << QTextLength(QTextLength::FixedLength, 50) << QTextLength(QTextLength::VariableLength, 620); tableFormat.setColumnWidthConstraints(constraints); // insert the table QTextCursor cursor = printEditor_->textCursor(); table_ = cursor.insertTable(1, 2, tableFormat); }
void ResWaReport::BuildPeopleServedSection(QTextCursor& cursor) { CalculatePeople(); cursor.movePosition(QTextCursor::End); cursor.insertBlock(); cursor.insertText("\n\n5) People Served\n", _headerFormat); QTextTableFormat tableFormat; QVector<QTextLength> constraints; constraints << QTextLength(QTextLength::PercentageLength, 40); constraints << QTextLength(QTextLength::PercentageLength, 40); tableFormat.setColumnWidthConstraints(constraints); cursor.insertText("\nA. # of people served by telephone:\n", _headerFormat); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); QTextTable *table = cursor.insertTable(2, 2, tableFormat); // HEADERS TextToCell(table, 0, 0, "All People Directly Served", &_tableTextFormat); TextToCell(table, 1, 0, "Children Directly Served", &_tableTextFormat); // VALUES //JAS Per Rosemary's need to match #2 on report TextToCell(table, 0, 1, QString::number(_numDirectAdult), &_tableCellBlue); TextToCell(table, 1, 1, QString::number(_numChildByPhone), &_tableCellBlue); //TextToCell(table, 0, 1, QString::number(_numByPhone), &_tableCellBlue); //TextToCell(table, 1, 1, QString::number(_numChildByPhone), &_tableCellBlue); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); cursor.insertText("\n\nB. # of people served by conflict coaching:\n", _headerFormat); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); QTextTable *tableB = cursor.insertTable(2, 2, tableFormat); // HEADERS TextToCell(tableB, 0, 0, "All People Directly Served", &_tableTextFormat); TextToCell(tableB, 1, 0, "Children Directly Served", &_tableTextFormat); // VALUES TextToCell(tableB, 0, 1, QString::number(_numByCoaching), &_tableCellBlue); TextToCell(tableB, 1, 1, QString::number(_numChildByCoaching), &_tableCellBlue); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); cursor.insertText("\n\nC.# of people served by telephone concilliation:\n", _headerFormat); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); QTextTable *tableC = cursor.insertTable(2, 2, tableFormat); // HEADERS TextToCell(tableC, 0, 0, "All People Directly Served", &_tableTextFormat); TextToCell(tableC, 1, 0, "Children Directly Served", &_tableTextFormat); // VALUES TextToCell(tableC, 0, 1, QString::number(_numByPhoneConcilliation), &_tableCellBlue); TextToCell(tableC, 1, 1, QString::number(_numChildByPhoneConcilliation), &_tableCellBlue); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); cursor.insertText("\n\nD. # of people served by mediation sessions:\n", _headerFormat); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); QTextTable *tableD = cursor.insertTable(2, 2, tableFormat); // HEADERS TextToCell(tableD, 0, 0, "All People Directly Served", &_tableTextFormat); TextToCell(tableD, 1, 0, "Children Directly Served", &_tableTextFormat); // VALUES TextToCell(tableD, 0, 1, QString::number(_numBySessions), &_tableCellBlue); TextToCell(tableD, 1, 1, QString::number(_numChildBySessions), &_tableCellBlue); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); cursor.insertText("\n\nE. # of people served by facilliation sessions:\n", _headerFormat); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); QTextTable *tableE = cursor.insertTable(2, 2, tableFormat); // HEADERS TextToCell(tableE, 0, 0, "All People Directly Served", &_tableTextFormat); TextToCell(tableE, 1, 0, "Children Directly Served", &_tableTextFormat); // VALUES TextToCell(tableE, 0, 1, QString::number(_numBySessionFacilliation), &_tableCellBlue); TextToCell(tableE, 1, 1, QString::number(_numChildBySessionFacilliation), &_tableCellBlue); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); cursor.insertText("\n\nF. # of people INDIRECTLY served by phone, concilliation, mediation, facilliation:\n", _headerFormat); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); QTextTable *tableF = cursor.insertTable(2, 2, tableFormat); // HEADERS TextToCell(tableF, 0, 0, "All People Indirectly Served", &_tableTextFormat); TextToCell(tableF, 1, 0, "Children Indirectly Served", &_tableTextFormat); // VALUES TextToCell(tableF, 0, 1, QString::number(_numIndirectly), &_tableCellBlue); TextToCell(tableF, 1, 1, QString::number(_numChildIndirectly), &_tableCellBlue); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); cursor.insertText("\n\nG. # of people served by training and in-service:\n", _headerFormat); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); QTextTable *tableG = cursor.insertTable(2, 2, tableFormat); // HEADERS TextToCell(tableG, 0, 0, "All People Directly Served", &_tableTextFormat); TextToCell(tableG, 1, 0, "Children Directly Served", &_tableTextFormat); // VALUES TextToCell(tableG, 0, 1, QString::number(_numByTraining), &_tableCellBlue); TextToCell(tableG, 1, 1, QString::number(_numChildByTraining), &_tableCellBlue); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); cursor.insertText("\n\nH. # of additional people served:\n", _headerFormat); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); QTextTable *tableH = cursor.insertTable(2, 2, tableFormat); // HEADERS TextToCell(tableH, 0, 0, "All People Directly Served", &_tableTextFormat); TextToCell(tableH, 1, 0, "Children Directly Served", &_tableTextFormat); // VALUES TextToCell(tableH, 0, 1, QString::number(_numAdditionalServed), &_tableCellBlue); TextToCell(tableH, 1, 1, QString::number(_numChildAdditionalServed), &_tableCellBlue); }
void TestTableLayout::setupTest(const QString &mergedText, const QString &topRightText, const QString &midRightText, const QString &bottomLeftText, const QString &bottomMidText, const QString &bottomRightText, KoTableStyle* tableStyle) { QTextCursor cursor = setupTest(); KoParagraphStyle style; style.setStyleId(101); // needed to do manually since we don't use the stylemanager style.applyStyle(m_block); QTextTableFormat tableFormat; if (tableStyle) tableStyle->applyStyle(tableFormat); m_table = cursor.insertTable(3,3,tableFormat); m_table->mergeCells(0,0,2,2); if (mergedText.length() > 0) { m_table->cellAt(0,0).firstCursorPosition().insertText(mergedText); QTextBlock b2 = m_table->cellAt(0,0).firstCursorPosition().block(); while (b2.isValid()) { style.applyStyle(b2); b2 = b2.next(); } } if (topRightText.length() > 0) { m_table->cellAt(0,2).firstCursorPosition().insertText(topRightText); QTextBlock b2 = m_table->cellAt(0,2).firstCursorPosition().block(); while (b2.isValid()) { style.applyStyle(b2); b2 = b2.next(); } } if (midRightText.length() > 0) { m_table->cellAt(1,2).firstCursorPosition().insertText(midRightText); QTextBlock b2 = m_table->cellAt(1,2).firstCursorPosition().block(); while (b2.isValid()) { style.applyStyle(b2); b2 = b2.next(); } } if (bottomLeftText.length() > 0) { m_table->cellAt(2,0).firstCursorPosition().insertText(bottomLeftText); QTextBlock b2 = m_table->cellAt(2,0).firstCursorPosition().block(); while (b2.isValid()) { style.applyStyle(b2); b2 = b2.next(); } } if (bottomMidText.length() > 0) { m_table->cellAt(2,1).firstCursorPosition().insertText(bottomMidText); QTextBlock b2 = m_table->cellAt(2,1).firstCursorPosition().block(); while (b2.isValid()) { style.applyStyle(b2); b2 = b2.next(); } } if (bottomRightText.length() > 0) { m_table->cellAt(2,2).firstCursorPosition().insertText(bottomRightText); QTextBlock b2 = m_table->cellAt(2,2).firstCursorPosition().block(); while (b2.isValid()) { style.applyStyle(b2); b2 = b2.next(); } } }
void ResWaReport::BuildCasesSection(QTextCursor& cursor) { CalculateCasesTable(); cursor.movePosition(QTextCursor::End); cursor.insertBlock(); QTextTableFormat tableFormat; tableFormat.setHeaderRowCount(1); QVector<QTextLength> constraints; constraints << QTextLength(QTextLength::PercentageLength, 15); constraints << QTextLength(QTextLength::PercentageLength, 7); constraints << QTextLength(QTextLength::PercentageLength, 7); constraints << QTextLength(QTextLength::PercentageLength, 7); constraints << QTextLength(QTextLength::PercentageLength, 7); constraints << QTextLength(QTextLength::PercentageLength, 7); constraints << QTextLength(QTextLength::PercentageLength, 7); constraints << QTextLength(QTextLength::PercentageLength, 7); constraints << QTextLength(QTextLength::PercentageLength, 7); constraints << QTextLength(QTextLength::PercentageLength, 7); constraints << QTextLength(QTextLength::PercentageLength, 7); constraints << QTextLength(QTextLength::PercentageLength, 7); constraints << QTextLength(QTextLength::PercentageLength, 7); constraints << QTextLength(QTextLength::PercentageLength, 7); tableFormat.setColumnWidthConstraints(constraints); QTextTable *table = cursor.insertTable(CasesTableRows, CasesTableCols, tableFormat); // HEADERS TextToCell(table, CT_TOTAL_CASES_SETTLED, 0, "Cases Settled"); TextToCell(table, CT_TOTAL_CASES_PERC, 0, "Percentage of Total Cases Settled"); TextToCell(table, 0, CT_H_PARENTING, "Parenting Plans"); TextToCell(table, 0, CT_H_DISOLUTION, "Dissolution"); TextToCell(table, 0, CT_H_FORECLOSURE, "Foreclosure"); TextToCell(table, 0, CT_H_TENANT, "Tenant Landlord"); TextToCell(table, 0, CT_H_BUSINESS, "Business"); TextToCell(table, 0, CT_H_WORKPLACE, "Workplace"); TextToCell(table, 0, CT_H_NEIGHBOR, "Neighbor"); TextToCell(table, 0, CT_H_VICTIM, "Victim Offender"); TextToCell(table, 0, CT_H_PARENT, "Parent Teen"); TextToCell(table, 0, CT_H_SCHOOL, "School"); TextToCell(table, 0, CT_H_ELDER, "Elder"); TextToCell(table, 0, CT_H_OTHER, "Other"); TextToCell(table, 0, CT_H_TOTAL, "Total"); // ROW INDICES TextToCell(table, CT_SMALL_CLAIMS , 0, "Small Claims Court Cases", nullptr, &_tableIndexDark); TextToCell(table, CT_SMALL_CLAIMS_SETTLED, 0, "Small Claims Court Cases Settled", nullptr, &_tableIndexDark); TextToCell(table, CT_SMALL_CLAIMS_PERC, 0, "Percentage of Small Claims Cases Settled", nullptr, &_tableIndexDark); TextToCell(table, CT_OTHER_DIST_COURT, 0, "Other District Court Cases"); TextToCell(table, CT_OTHER_DIST_COURT_SETTLED, 0, "Other District Court Cases Settled"); TextToCell(table, CT_OTHER_DIST_COURT_PERC, 0, "Percentage of District Court Cases Settled"); TextToCell(table, CT_JUVENIILE_COURT, 0, "Juvenile Court Cases", nullptr, &_tableIndexDark); TextToCell(table, CT_JUVENIILE_COURT_SETTLED, 0, "Juvenile Cases Settled", nullptr, &_tableIndexDark); TextToCell(table, CT_JUVENIILE_COURT_PERC, 0, "Percentage of Juvenile Cases Settled", nullptr, &_tableIndexDark); TextToCell(table, CT_SUPERIOR_COURT, 0, "Superior Court Cases"); TextToCell(table, CT_SUPERIOR_COURT_SETTLED, 0, "Superior Court Cases Settled"); TextToCell(table, CT_SUPERIOR_COURT_PERC, 0, "Percentage of Superior Cases Settled"); TextToCell(table, CT_OTHER_CASES, 0, "Other Cases", nullptr, &_tableIndexDark); TextToCell(table, CT_OTHER_CASES_SETTLED, 0, "Other Cases Settled", nullptr, &_tableIndexDark); TextToCell(table, CT_OTHER_CASES_PERC, 0, "Percentage of Other Cases Settled", nullptr, &_tableIndexDark); TextToCell(table, CT_TOTAL_CASES, 0, "Total Cases"); // POPULATE CELLS FROM MATRIX for (auto row = 1; row < CasesTableRows; ++row) for (auto col = 1; col < CasesTableCols; ++col) TextToCell(table, row, col, QString::number(_casesTable[row][col]),nullptr, &_tableCellBlue); }
void DetailsTable::createRSTTAble(SkyObject *obj, const KStarsDateTime &ut, GeoLocation *geo) { clearContents(); QTextCursor cursor = m_Document->rootFrame()->firstCursorPosition(); QString rtValue, stValue; // Rise/Set time values QString azRValue, azSValue; // Rise/Set azimuth values //Prepare time/position variables QTime rt = obj->riseSetTime(ut, geo, true); //true = use rise time dms raz = obj->riseSetTimeAz(ut, geo, true); //true = use rise time //If transit time is before rise time, use transit time for tomorrow QTime tt = obj->transitTime(ut, geo); dms talt = obj->transitAltitude(ut, geo); if(tt < rt) { tt = obj->transitTime(ut.addDays(1), geo); talt = obj->transitAltitude(ut.addDays(1), geo); } //If set time is before rise time, use set time for tomorrow QTime st = obj->riseSetTime(ut, geo, false); //false = use set time dms saz = obj->riseSetTimeAz(ut, geo, false); //false = use set time if(st < rt) { st = obj->riseSetTime(ut.addDays(1), geo, false); //false = use set time saz = obj->riseSetTimeAz(ut.addDays( 1 ), geo, false); //false = use set time } if(rt.isValid()) { rtValue = QString().sprintf("%02d:%02d", rt.hour(), rt.minute()); stValue = QString().sprintf("%02d:%02d", st.hour(), st.minute()); azRValue = raz.toDMSString(); azSValue = saz.toDMSString(); } else { if(obj->alt().Degrees() > 0.0) { rtValue = i18n("Circumpolar"); stValue = i18n("Circumpolar"); } else { rtValue = i18n("Never rises"); stValue = i18n("Never rises"); } azRValue = i18nc("Not Applicable", "N/A"); azSValue = i18nc("Not Applicable", "N/A"); } // Set column width constraints QVector<QTextLength> constraints; constraints << QTextLength(QTextLength::PercentageLength, 25) << QTextLength(QTextLength::PercentageLength, 25) << QTextLength(QTextLength::PercentageLength, 25) << QTextLength(QTextLength::PercentageLength, 25); m_TableFormat.setColumnWidthConstraints(constraints); // Insert table & row containing table name QTextTable *table = cursor.insertTable(4, 4, m_TableFormat); table->mergeCells(0, 0, 1, 4); QTextBlockFormat centered; centered.setAlignment(Qt::AlignCenter); table->cellAt(0, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(0, 0).firstCursorPosition().insertText(i18n("Rise/Set/Transit"), m_TableTitleCharFormat); // Insert cell names & values table->cellAt(1, 0).firstCursorPosition().insertText(i18n("Rise time:"), m_ItemNameCharFormat); table->cellAt(1, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(1, 1).firstCursorPosition().insertText(rtValue, m_ItemValueCharFormat); table->cellAt(2, 0).firstCursorPosition().insertText(i18n("Transit time:"), m_ItemNameCharFormat); table->cellAt(2, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(2, 1).firstCursorPosition().insertText(QString().sprintf("%02d:%02d", tt.hour(), tt.minute()), m_ItemValueCharFormat); table->cellAt(3, 0).firstCursorPosition().insertText(i18n("Set time:"), m_ItemNameCharFormat); table->cellAt(3, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(3, 1).firstCursorPosition().insertText(stValue, m_ItemValueCharFormat); table->cellAt(1, 2).firstCursorPosition().insertText(i18n("Azimuth at rise:"), m_ItemNameCharFormat); table->cellAt(1, 2).firstCursorPosition().setBlockFormat(centered); table->cellAt(1, 3).firstCursorPosition().insertText(azRValue, m_ItemValueCharFormat); table->cellAt(2, 2).firstCursorPosition().insertText(i18n("Altitude at transit:"), m_ItemNameCharFormat); table->cellAt(2, 2).firstCursorPosition().setBlockFormat(centered); table->cellAt(2, 3).firstCursorPosition().insertText(talt.toDMSString(), m_ItemValueCharFormat); table->cellAt(3, 2).firstCursorPosition().insertText(i18n("Azimuth at set:"), m_ItemNameCharFormat); table->cellAt(3, 2).firstCursorPosition().setBlockFormat(centered); table->cellAt(3, 3).firstCursorPosition().insertText(azSValue, m_ItemValueCharFormat); // Restore the position and other time-dependent parameters obj->recomputeCoords( ut, geo ); }
void DetailsTable::createCoordinatesTable(SkyObject *obj, const KStarsDateTime &ut, GeoLocation *geo) { clearContents(); QTextCursor cursor = m_Document->rootFrame()->firstCursorPosition(); // Set column width constraints QVector<QTextLength> constraints; constraints << QTextLength(QTextLength::PercentageLength, 25) << QTextLength(QTextLength::PercentageLength, 25) << QTextLength(QTextLength::PercentageLength, 25) << QTextLength(QTextLength::PercentageLength, 25); m_TableFormat.setColumnWidthConstraints(constraints); // Insert table & row containing table name QTextTable *table = cursor.insertTable(4, 4, m_TableFormat); table->mergeCells(0, 0, 1, 4); QTextBlockFormat centered; centered.setAlignment(Qt::AlignCenter); table->cellAt(0, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(0, 0).firstCursorPosition().insertText(i18n("Coordinates"), m_TableTitleCharFormat); //Coordinates Section: //Don't use KLocale::formatNumber() for the epoch string, //because we don't want a thousands-place separator! QString sEpoch = QString::number(ut.epoch(), 'f', 1); //Replace the decimal point with localized decimal symbol sEpoch.replace('.', KGlobal::locale()->decimalSymbol()); table->cellAt(1, 0).firstCursorPosition().insertText(i18n("RA (%1):", sEpoch), m_ItemNameCharFormat); table->cellAt(1, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(1, 1).firstCursorPosition().insertText(obj->ra().toHMSString(), m_ItemValueCharFormat); table->cellAt(2, 0).firstCursorPosition().insertText(i18n("Dec (%1):", sEpoch), m_ItemNameCharFormat); table->cellAt(2, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(2, 1).firstCursorPosition().insertText(obj->dec().toDMSString(), m_ItemValueCharFormat); table->cellAt(3, 0).firstCursorPosition().insertText(i18n("Hour angle:"), m_ItemNameCharFormat); table->cellAt(3, 0).firstCursorPosition().setBlockFormat(centered); //Hour Angle can be negative, but dms HMS expressions cannot. //Here's a kludgy workaround: dms lst = geo->GSTtoLST(ut.gst()); dms ha(lst.Degrees() - obj->ra().Degrees()); QChar sgn('+'); if(ha.Hours() > 12.0) { ha.setH(24.0 - ha.Hours()); sgn = '-'; } table->cellAt(3, 1).firstCursorPosition().insertText(QString("%1%2").arg(sgn).arg(ha.toHMSString()), m_ItemValueCharFormat); table->cellAt(1, 2).firstCursorPosition().insertText(i18n("Azimuth:"), m_ItemNameCharFormat); table->cellAt(1, 2).firstCursorPosition().setBlockFormat(centered); table->cellAt(1, 3).firstCursorPosition().insertText(obj->az().toDMSString(), m_ItemValueCharFormat); table->cellAt(2, 2).firstCursorPosition().insertText(i18n("Altitude:"), m_ItemNameCharFormat); table->cellAt(2, 2).firstCursorPosition().setBlockFormat(centered); dms a; if(Options::useAltAz()) { a = obj->alt(); } else { a = obj->altRefracted(); } table->cellAt(2, 3).firstCursorPosition().insertText(a.toDMSString(), m_ItemValueCharFormat); table->cellAt(3, 2).firstCursorPosition().insertText(i18n("Airmass:"), m_ItemNameCharFormat); table->cellAt(3, 2).firstCursorPosition().setBlockFormat(centered); //Airmass is approximated as the secant of the zenith distance, //equivalent to 1./sin(Alt). Beware of Inf at Alt=0! QString aMassStr; if(obj->alt().Degrees() > 0.0) { aMassStr = KGlobal::locale()->formatNumber(1./sin(obj->alt().radians() ), 2); } else { aMassStr = "--"; } table->cellAt(3, 3).firstCursorPosition().insertText(aMassStr, m_ItemValueCharFormat); // Restore the position and other time-dependent parameters obj->recomputeCoords(ut, geo); }
void KoTextLoader::loadBody(const KoXmlElement &bodyElem, QTextCursor &cursor) { const QTextBlockFormat defaultBlockFormat = cursor.blockFormat(); const QTextCharFormat defaultCharFormat = cursor.charFormat(); const QTextDocument *document = cursor.block().document(); d->styleManager = KoTextDocument(document).styleManager(); Q_ASSERT(d->styleManager); d->changeTracker = KoTextDocument(document).changeTracker(); // if (!d->changeTracker) // d->changeTracker = dynamic_cast<KoChangeTracker *>(d->context.dataCenterMap().value("ChangeTracker")); // Q_ASSERT(d->changeTracker); kDebug(32500) << "text-style:" << KoTextDebug::textAttributes( cursor.blockCharFormat() ); #if 0 if ((document->isEmpty()) && (d->styleManager)) { QTextBlock block = cursor.block(); d->styleManager->defaultParagraphStyle()->applyStyle(block); } #endif startBody(KoXml::childNodesCount(bodyElem)); KoXmlElement tag; bool usedParagraph = false; // set to true if we found a tag that used the paragraph, indicating that the next round needs to start a new one. forEachElement(tag, bodyElem) { if (! tag.isNull()) { const QString localName = tag.localName(); if (tag.namespaceURI() == KoXmlNS::text) { if (usedParagraph) cursor.insertBlock(defaultBlockFormat, defaultCharFormat); usedParagraph = true; if (d->changeTracker && localName == "tracked-changes") { d->changeTracker->loadOdfChanges(tag); usedParagraph = false; } else if (d->changeTracker && localName == "change-start") { loadChangedRegion(tag, cursor); usedParagraph = false; } else if (d->changeTracker && localName == "change-end") { d->currentChangeId = 0; usedParagraph = false; } else if (localName == "p") { // text paragraph loadParagraph(tag, cursor); } else if (localName == "h") { // heading loadHeading(tag, cursor); } else if (localName == "unordered-list" || localName == "ordered-list" // OOo-1.1 || localName == "list" || localName == "numbered-paragraph") { // OASIS loadList(tag, cursor); } else if (localName == "section") { // Temporary support (###TODO) loadSection(tag, cursor); } else { KoVariable *var = KoVariableRegistry::instance()->createFromOdf(tag, d->context); if (var) { KoTextDocumentLayout *layout = dynamic_cast<KoTextDocumentLayout*>(cursor.block().document()->documentLayout()); if (layout) { KoInlineTextObjectManager *textObjectManager = layout->inlineTextObjectManager(); if (textObjectManager) { KoVariableManager *varManager = textObjectManager->variableManager(); if (varManager) { textObjectManager->insertInlineObject(cursor, var); } } } } else { usedParagraph = false; kWarning(32500) << "unhandled text:" << localName; } } } else if (tag.namespaceURI() == KoXmlNS::draw) { loadShape(tag, cursor); } else if (tag.namespaceURI() == KoXmlNS::table) { if (localName == "table") { loadTable(tag, cursor); } else { kWarning(32500) << "unhandled table:" << localName; } #if 0 // TODO commented out for now if (localName == "table") { cursor.insertText("\n"); cursor.movePosition(QTextCursor::Left, QTextCursor::MoveAnchor, 1); QTextTable *tbl = cursor.insertTable(1, 1); int rows = 0; int columns = 0; kDebug(32500) << "Table inserted"; KoXmlElement tblTag; forEachElement(tblTag, tag) { if (! tblTag.isNull()) { const QString tblLocalName = tblTag.localName(); if (tblTag.namespaceURI() == KoXmlNS::table) { if (tblLocalName == "table-column") { // Do some parsing with the column, see §8.2.1, ODF 1.1 spec int repeatColumn = tblTag.attributeNS(KoXmlNS::table, "number-columns-repeated", "1").toInt(); columns = columns + repeatColumn; if (rows > 0) tbl->resize(rows, columns); else tbl->resize(1, columns); } else if (tblLocalName == "table-row") { // Lot of work to do here... rows++; if (columns > 0) tbl->resize(rows, columns); else tbl->resize(rows, 1); // Added a row int currentCell = 0; KoXmlElement rowTag; forEachElement(rowTag, tblTag) { if (!rowTag.isNull()) { const QString rowLocalName = rowTag.localName(); if (rowTag.namespaceURI() == KoXmlNS::table) { if (rowLocalName == "table-cell") { // Ok, it's a cell... const int currentRow = tbl->rows() - 1; QTextTableCell cell = tbl->cellAt(currentRow, currentCell); if (cell.isValid()) { cursor = cell.firstCursorPosition(); loadBody(context, rowTag, cursor); } else kDebug(32500) << "Invalid table-cell row=" << currentRow << " column=" << currentCell; currentCell++; } } } } } } } } cursor = tbl->lastCursorPosition(); cursor.movePosition(QTextCursor::Right, QTextCursor::MoveAnchor, 1); } else { kWarning(32500) << "KoTextLoader::loadBody unhandled table::" << localName; } #endif }
void ResWaReport::BuildEvaluationSection(QTextCursor& cursor) { cursor.movePosition(QTextCursor::End); cursor.insertBlock(); cursor.insertText("\n\n8) Evaluations\n", _headerFormat); QTextTableFormat tableFormat; QVector<QTextLength> constraints; constraints << QTextLength(QTextLength::PercentageLength, 33); constraints << QTextLength(QTextLength::PercentageLength, 33); constraints << QTextLength(QTextLength::PercentageLength, 33); tableFormat.setColumnWidthConstraints(constraints); // fair cursor.insertBlock(); cursor.movePosition(QTextCursor::End); cursor.insertText("\n\n\tMediators fair and impartial?\n", _headerFormat); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); QTextTable *table1 = cursor.insertTable(3, 2, tableFormat); TextToCell(table1, 0, 0, "Yes", &_tableTextFormat); TextToCell(table1, 1, 0, "No", &_tableTextFormat); TextToCell(table1, 2, 0, "Somewhat", &_tableTextFormat); TextToCell(table1, 0, 1, QString::number(_q1Yes), &_tableCellBlue); TextToCell(table1, 1, 1, QString::number(_q1No), &_tableCellBlue); TextToCell(table1, 2, 1, QString::number(_q1Somewhat), &_tableCellBlue); // improved situation cursor.insertBlock(); cursor.movePosition(QTextCursor::End); cursor.insertText("\tSituation Improved By Mediation?\n", _headerFormat); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); QTextTable *table2 = cursor.insertTable(3, 2, tableFormat); TextToCell(table2, 0, 0, "Yes", &_tableTextFormat); TextToCell(table2, 1, 0, "No", &_tableTextFormat); TextToCell(table2, 2, 0, "Somewhat", &_tableTextFormat); TextToCell(table2, 0, 1, QString::number(_q2Yes), &_tableCellBlue); TextToCell(table2, 1, 1, QString::number(_q2No), &_tableCellBlue); TextToCell(table2, 2, 1, QString::number(_q2Somewhat), &_tableCellBlue); // helped you communicate cursor.insertBlock(); cursor.movePosition(QTextCursor::End); cursor.insertText("\tHelped to communicate with other party?\n", _headerFormat); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); QTextTable *table3 = cursor.insertTable(3, 2, tableFormat); TextToCell(table3, 0, 0, "Yes", &_tableTextFormat); TextToCell(table3, 1, 0, "No", &_tableTextFormat); TextToCell(table3, 2, 0, "Somewhat", &_tableTextFormat); TextToCell(table3, 0, 1, QString::number(_q3Yes), &_tableCellBlue); TextToCell(table3, 1, 1, QString::number(_q3No), &_tableCellBlue); TextToCell(table3, 2, 1, QString::number(_q3Somewhat), &_tableCellBlue); // helped understand other point view cursor.insertBlock(); cursor.movePosition(QTextCursor::End); cursor.insertText("\tHelped to better understand the issues?\n", _headerFormat); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); QTextTable *table4 = cursor.insertTable(3, 2, tableFormat); TextToCell(table4, 0, 0, "Yes", &_tableTextFormat); TextToCell(table4, 1, 0, "No", &_tableTextFormat); TextToCell(table4, 2, 0, "Somewhat", &_tableTextFormat); TextToCell(table4, 0, 1, QString::number(_q4Yes), &_tableCellBlue); TextToCell(table4, 1, 1, QString::number(_q4No), &_tableCellBlue); TextToCell(table4, 2, 1, QString::number(_q4Somewhat), &_tableCellBlue); // Would recommend to someone else cursor.insertBlock(); cursor.movePosition(QTextCursor::End); cursor.insertText("\tRecommend mediation to others?\n", _headerFormat); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); QTextTable *table5 = cursor.insertTable(3, 2, tableFormat); TextToCell(table5, 0, 0, "Yes", &_tableTextFormat); TextToCell(table5, 1, 0, "No", &_tableTextFormat); TextToCell(table5, 2, 0, "Somewhat", &_tableTextFormat); TextToCell(table5, 0, 1, QString::number(_q5Yes), &_tableCellBlue); TextToCell(table5, 1, 1, QString::number(_q5No), &_tableCellBlue); TextToCell(table5, 2, 1, QString::number(_q5Somewhat), &_tableCellBlue); // was agreement reached cursor.insertBlock(); cursor.movePosition(QTextCursor::End); cursor.insertText("\tDid you reach an agreement?\n", _headerFormat); cursor.insertBlock(); cursor.movePosition(QTextCursor::End); QTextTable *table6 = cursor.insertTable(3, 2, tableFormat); TextToCell(table6, 0, 0, "Yes", &_tableTextFormat); TextToCell(table6, 1, 0, "No", &_tableTextFormat); TextToCell(table6, 2, 0, "Somewhat", &_tableTextFormat); TextToCell(table6, 0, 1, QString::number(_q2Yes), &_tableCellBlue); TextToCell(table6, 1, 1, QString::number(_q2No), &_tableCellBlue); TextToCell(table6, 2, 1, QString::number(_q2Somewhat), &_tableCellBlue); }
/////////////////////////////////////////////////////////////////////////////////// //fin modele----------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////////////////// void ProduceDoc::fillTable(QList<QVector<QString> > & tableau, QTextTableFormat & tableFormatOrganized, QTextCursor * cursorForFillFunction, QString & thisMonth, QStringList & listSums, int choice, const QString & totalMovementString){ QList<QVector<QString> > tableauInFonction; tableauInFonction = tableau; int nbreLignesTableau = tableauInFonction.size(); int nbreColonnesTableau = TABLE_NAME_OF_ACTS; int sizeOfTable = nbreLignesTableau*nbreColonnesTableau; QTextTableFormat tableFormat = tableFormatOrganized; QTextCursor *cursortrieinfunction = cursorForFillFunction; QString thisMonthfonction = thisMonth; QString type = ""; QStringList totalSumsList = listSums; QString total; /*for (int i = 0; i < totalSumsList.size(); i += 1) { if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << " totalSumsList =" << totalSumsList[i] ; }*/ if(choice == RECEIPTS_TYPE){ type = tr("Receipts"); total = totalSumsList[SUMS_SUM]; } if(choice == MOVEMENTS_TYPE){ type = tr("Movements"); total = totalMovementString; } QTextBlockFormat centerHead ; //centrer .setBackground(Qt::yellow) ; if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << " thisMonthfonction =" << thisMonthfonction ; QString heads = tr("Month of ")+thisMonthfonction+" = "+type; if (thisMonthfonction == tr("complete year")) { heads = tr("Total of ")+thisMonthfonction+" = "+type; } centerHead .setAlignment(Qt::AlignCenter) ; cursortrieinfunction -> insertBlock(centerHead); cursortrieinfunction -> insertHtml("<font size = 6 color = #3300FF><bold><br/>" "<br/>"+heads+"<bold>" "</font><br/><br/>"); QTextTableFormat tableFormatDone; myFormat(tableFormatDone,m_tablesRecapParameters); if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << " thread 10 " ; if(sizeOfTable!= 0){ if((thisMonthfonction != tr("complete year")) ){ QTextTable * table = cursortrieinfunction->insertTable(nbreLignesTableau, nbreColonnesTableau, tableFormat); for(int i=0 ; i< nbreLignesTableau ; i++){ QVector<QString> vectorString; vectorString = tableauInFonction[i]; /*if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << "vectorString size =" << QString::number(vectorString.size());*/ QStringList list; // liste des données de la ligne /*if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << "nbreColonnesTableau = " << QString::number(nbreColonnesTableau) ;*/ for (int a = 0 ;a < nbreColonnesTableau ; a++){ QString str = vectorString[a]; list << str; if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << " str =" << str ; } double s = list[2].toDouble(); if(s > 0){ for(int j= 0 ; j < nbreColonnesTableau ; j++){ QTextTableCell cell = table->cellAt(i,j); QTextCursor cellCursor = cell.firstCursorPosition(); cellCursor . insertText(list[j]); } } } QTextBlockFormat centrer ; //centrer .setBackground(Qt::yellow) ; centrer .setAlignment(Qt::AlignCenter) ; cursortrieinfunction -> insertBlock(centrer); cursortrieinfunction -> insertText("\n\n"); //----------------insertion fin de table------------------------------------------- if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << "total =" << total ; table -> insertRows(table->rows(),1); table -> mergeCells(table->rows()-1,0,1,2);//-1 car part de zero QTextTableCell cell = table->cellAt(table->rows()-1,0); QTextCursor cellCursor = cell.firstCursorPosition(); QString totalMonth = QString("<html><font size = 4 color = #FF0000><bold>%1 %2 <bold></font></html>") .arg(tr("Total of "),thisMonthfonction); cellCursor .insertHtml(totalMonth); QTextTableCell cell2 = table->cellAt(table->rows()-1,2); QTextCursor cellCursor2 = cell2.firstCursorPosition(); table -> mergeCells(table->rows()-1,2,1,3); cellCursor2 .insertText(total); cursortrieinfunction -> movePosition(QTextCursor::End,QTextCursor::MoveAnchor,1); QTextBlockFormat centrer1 ; //centrer1 .setBackground(Qt::yellow) ; centrer1 .setForeground(Qt::red) ; centrer1 .setAlignment(Qt::AlignCenter); QString headAccumulation = tr("Accumulation of ")+type+" "+tr("of")+" "+thisMonthfonction; cursortrieinfunction -> insertBlock(centrer1); cursortrieinfunction -> insertHtml ("<font size = 6 color = #3300FF><bold><br/>" "<br/>"+headAccumulation+"<bold></font>" "<br/><br/>"); } if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << " thread 12 " ; //---------------insertion table recapitulative---------------------------------- //---------------complete year--------------------------------------------------- QTextTable *tableRecap; if(choice == RECEIPTS_TYPE){ QString esp = totalSumsList[SUMS_CASH]; QString chq = totalSumsList[SUMS_CHECKS]; QString cb = totalSumsList[SUMS_CREDITCARDS]; QString banking = totalSumsList[SUMS_BANKING]; QString totalReceipts = totalSumsList[SUMS_SUM]; nbreLignesTableau = int(SUMS_MaxParam) ; tableRecap = cursortrieinfunction->insertTable(nbreLignesTableau,2,tableFormatDone); QTextTableCell cell00 = tableRecap->cellAt(0,0);//verify all table QTextCursor cellCursor00 = cell00.firstCursorPosition(); cellCursor00 . insertText(tr("Total Cash")); QTextTableCell cell01 = tableRecap->cellAt(0,1); QTextCursor cellCursor01 = cell01.firstCursorPosition(); cellCursor01 . insertText(esp); QTextTableCell cell10 = tableRecap->cellAt(1,0); QTextCursor cellCursor10 = cell10.firstCursorPosition(); cellCursor10 . insertText(tr("Total checks")); QTextTableCell cell11 = tableRecap->cellAt(1,1); QTextCursor cellCursor11 = cell11.firstCursorPosition(); cellCursor11 . insertText(chq); QTextTableCell cell20 = tableRecap->cellAt(2,0); QTextCursor cellCursor20 = cell20.firstCursorPosition(); cellCursor20 . insertText(tr("Total credit cards")); QTextTableCell cell21 = tableRecap->cellAt(2,1); QTextCursor cellCursor21 = cell21.firstCursorPosition(); cellCursor21 . insertText(cb); QTextTableCell cell30 = tableRecap->cellAt(3,0); QTextCursor cellCursor30 = cell30.firstCursorPosition(); cellCursor30 . insertText(tr("Total bankings")); QTextTableCell cell31 = tableRecap->cellAt(3,1); QTextCursor cellCursor31 = cell31.firstCursorPosition(); cellCursor31 . insertText(banking); QTextTableCell cell40 = tableRecap->cellAt(4,0); QTextCursor cellCursor40 = cell40.firstCursorPosition(); QString totalReceiptsHtml = QString("<html><font size = 4 color = #FF0000><bold>%1 %2 <bold></font></html>") .arg(tr("Total of "), tr("receipts")); cellCursor40 . insertHtml(totalReceiptsHtml); QTextTableCell cell41 = tableRecap->cellAt(4,1); QTextCursor cellCursor41 = cell41.firstCursorPosition(); cellCursor41 . insertText(totalReceipts); } if(choice == MOVEMENTS_TYPE){ //nbreLignesTableau = m_typesMovements.size(); if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << " m_typesMovements.size() =" << QString::number(m_typesMovements.size()) ; //int nberLines = nbreLignesTableau +1 ; int nberLines = totalSumsList.size(); if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << "nberLines =" << QString::number(nberLines); tableRecap = cursortrieinfunction->insertTable(nberLines,2,tableFormatDone); if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << "totalSumsList.size = " << QString::number(totalSumsList.size()); for(int i = 0 ; i < nberLines ; i++){ if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << "i = " << QString::number(i); //if(!i < totalSumsList.size()){break;} if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << "totalSumsList[i] = " << totalSumsList[i]; QStringList paireDepenseMontant = totalSumsList[i].split("="); if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << "paireDepenseMontant[1] =" << paireDepenseMontant[1] ; if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << "paireDepenseMontant[0] =" << paireDepenseMontant[0] ; QTextTableCell cellDep = tableRecap->cellAt(i,0); QTextCursor cellCursorDep = cellDep.firstCursorPosition(); QString paireDepenseMontantLeft = paireDepenseMontant[0]; if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << "paireDepenseMontantLeft =" << paireDepenseMontantLeft ; if (paireDepenseMontantLeft == tr("Total")) { if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << "in total"; QString totalInHtml = QString("<html><font size = 4 color = #FF0000><bold>%1<bold></font></html>") .arg(paireDepenseMontantLeft); cellCursorDep.insertHtml(totalInHtml); } else{ if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << "in else"; cellCursorDep.insertText(paireDepenseMontantLeft); } QTextTableCell cellDep1 = tableRecap->cellAt(i,1); QTextCursor cellCursorDep1 = cellDep1.firstCursorPosition(); cellCursorDep1 . insertText(paireDepenseMontant[1]); if (WarnDebugMessage) qDebug() << __FILE__ << QString::number(__LINE__) << "end of for"; } } //calculparmois(listforquery,table, un,trenteetquelque);//calcul par type recette et mois cursortrieinfunction ->movePosition(QTextCursor::End,QTextCursor::MoveAnchor,1); } }//end of fillTable
bool MainWindow::insert_rhymes() { QString word = line_edit->text(); text_edit->clear(); QList<QStrVec> rhymes = sorted_list(word,get_rhymes(get_current_db_name(),word.right(2),10000)); if(rhymes.isEmpty()) { return false; } QTextCursor cursor = text_edit->textCursor(); cursor.beginEditBlock(); int columns = 4; double d_rows = rhymes.length() / (columns * 1.0); int rows = (qRound(d_rows) < d_rows)? qRound(d_rows) + 1: qRound(d_rows); QTextTableFormat table_format; table_format.setAlignment(Qt::AlignLeft); table_format.setBorderStyle(QTextFrameFormat::BorderStyle_None); QVector<QTextLength> constraints; for(int i = 0;i < columns;i++) { constraints.append(QTextLength(QTextLength::PercentageLength, 100.0/columns)); } table_format.setColumnWidthConstraints(constraints); QTextTable *table = cursor.insertTable(rows,columns,table_format); QTextCharFormat red; red.setForeground(QBrush(QColor(255,0,0))); QTextCharFormat black; black.setForeground(QBrush(QColor(0,0,0))); bool is_previous_red = false; for(int current_row = 0;current_row < rows;current_row++) { for(int current_col = 0;current_col < columns;current_col++) { if(!rhymes.isEmpty()) { QStrVec &ptr = rhymes.first(); QTextCursor cellCursor = table->cellAt(current_row, current_col).firstCursorPosition(); for(int i = 0;i < ptr.QString::size();i++) { if(ptr.QVector<int>::contains(i)) { if(!is_previous_red) { is_previous_red = true; cellCursor.setCharFormat(red); } } else { if(is_previous_red) { is_previous_red = false; cellCursor.setCharFormat(black); } } cellCursor.insertText(QString(QString(ptr)[i])); } rhymes.removeFirst(); is_previous_red = false; } else { break; } } } cursor.endEditBlock(); return true; }
void CDiaryEdit::draw(QTextDocument& doc) { CDiaryEditLock lock(this); QFontMetrics fm(QFont(font().family(),10)); bool hasGeoCaches = false; int cnt; int w = doc.textWidth(); int pointSize = ((10 * (w - 2 * ROOT_FRAME_MARGIN)) / (CHAR_PER_LINE * fm.width("X"))); if(pointSize == 0) return; doc.setUndoRedoEnabled(false); QFont f = textEdit->font(); f.setPointSize(pointSize); textEdit->setFont(f); QTextCharFormat fmtCharHeading1; fmtCharHeading1.setFont(f); fmtCharHeading1.setFontWeight(QFont::Black); fmtCharHeading1.setFontPointSize(f.pointSize() + 8); QTextCharFormat fmtCharHeading2; fmtCharHeading2.setFont(f); fmtCharHeading2.setFontWeight(QFont::Black); fmtCharHeading2.setFontPointSize(f.pointSize() + 4); QTextCharFormat fmtCharStandard; fmtCharStandard.setFont(f); QTextCharFormat fmtCharHeader; fmtCharHeader.setFont(f); fmtCharHeader.setBackground(Qt::darkBlue); fmtCharHeader.setFontWeight(QFont::Bold); fmtCharHeader.setForeground(Qt::white); QTextBlockFormat fmtBlockStandard; fmtBlockStandard.setTopMargin(10); fmtBlockStandard.setBottomMargin(10); fmtBlockStandard.setAlignment(Qt::AlignJustify); QTextFrameFormat fmtFrameStandard; fmtFrameStandard.setTopMargin(5); fmtFrameStandard.setBottomMargin(5); fmtFrameStandard.setWidth(w - 2 * ROOT_FRAME_MARGIN); QTextFrameFormat fmtFrameRoot; fmtFrameRoot.setTopMargin(ROOT_FRAME_MARGIN); fmtFrameRoot.setBottomMargin(ROOT_FRAME_MARGIN); fmtFrameRoot.setLeftMargin(ROOT_FRAME_MARGIN); fmtFrameRoot.setRightMargin(ROOT_FRAME_MARGIN); QTextTableFormat fmtTableStandard; fmtTableStandard.setBorder(1); fmtTableStandard.setBorderBrush(Qt::black); fmtTableStandard.setCellPadding(4); fmtTableStandard.setCellSpacing(0); fmtTableStandard.setHeaderRowCount(1); fmtTableStandard.setTopMargin(10); fmtTableStandard.setBottomMargin(20); fmtTableStandard.setWidth(w - 2 * ROOT_FRAME_MARGIN); QVector<QTextLength> constraints; constraints << QTextLength(QTextLength::FixedLength, 32); constraints << QTextLength(QTextLength::VariableLength, 50); constraints << QTextLength(QTextLength::VariableLength, 100); fmtTableStandard.setColumnWidthConstraints(constraints); doc.rootFrame()->setFrameFormat(fmtFrameRoot); QTextCursor cursor = doc.rootFrame()->firstCursorPosition(); cursor.insertText(diary.getName(), fmtCharHeading1); cursor.setCharFormat(fmtCharStandard); cursor.setBlockFormat(fmtBlockStandard); diary.diaryFrame = cursor.insertFrame(fmtFrameStandard); { QTextCursor cursor1(diary.diaryFrame); cursor1.setCharFormat(fmtCharStandard); cursor1.setBlockFormat(fmtBlockStandard); if(diary.getComment().isEmpty()) { cursor1.insertText(tr("Add your own text here...")); } else { cursor1.insertHtml(diary.getComment()); } cursor.setPosition(cursor1.position()+1); } if(!diary.getWpts().isEmpty()) { QList<CWpt*>& wpts = diary.getWpts(); cursor.insertText(tr("Waypoints"),fmtCharHeading2); QTextTable * table = cursor.insertTable(wpts.count()+1, eMax, fmtTableStandard); diary.tblWpt = table; table->cellAt(0,eSym).setFormat(fmtCharHeader); table->cellAt(0,eInfo).setFormat(fmtCharHeader); table->cellAt(0,eComment).setFormat(fmtCharHeader); table->cellAt(0,eInfo).firstCursorPosition().insertText(tr("Info")); table->cellAt(0,eComment).firstCursorPosition().insertText(tr("Comment")); cnt = 1; qSort(wpts.begin(), wpts.end(), qSortWptLessTime); foreach(CWpt * wpt, wpts) { table->cellAt(cnt,eSym).firstCursorPosition().insertImage(wpt->getIcon().toImage().scaledToWidth(16, Qt::SmoothTransformation)); table->cellAt(cnt,eInfo).firstCursorPosition().insertText(wpt->getName() + "\n" + wpt->getInfo(), fmtCharStandard); QTextCursor c = table->cellAt(cnt,eComment).firstCursorPosition(); c.setCharFormat(fmtCharStandard); c.setBlockFormat(fmtBlockStandard); c.insertHtml(wpt->getComment()); if(wpt->isGeoCache()) { hasGeoCaches = true; } cnt++; }
void DetailsTable::createAsteroidCometTable(SkyObject *obj) { clearContents(); QTextCursor cursor = m_Document->rootFrame()->firstCursorPosition(); QString perihelionVal, orbitIdVal, neoVal, diamVal, rotPeriodVal, moidVal; QString orbitClassVal, albedoVal, dimVal, periodVal; // Add specifics data switch(obj->type()) { case SkyObject::ASTEROID: { KSAsteroid* ast = (KSAsteroid *)obj; // Perihelion perihelionVal = QString::number(ast->getPerihelion()) + " AU"; // Earth MOID moidVal = ast->getEarthMOID() == 0 ? QString("--") : QString::number(ast->getEarthMOID()) + QString(" AU"); // Orbit ID orbitIdVal = ast->getOrbitID(); // Orbit Class orbitClassVal = ast->getOrbitClass(); // NEO neoVal = ast->isNEO() ? i18n("Yes") : i18n("No"); // Albedo albedoVal = ast->getAlbedo() == 0 ? QString("--") : QString::number(ast->getAlbedo()); // Diameter diamVal = ast->getDiameter() == 0 ? QString("--") : QString::number(ast->getDiameter()) + QString(" km"); // Dimensions dimVal = ast->getDimensions().isEmpty() ? QString("--") : ast->getDimensions() + QString(" km"); // Rotation period rotPeriodVal = ast->getRotationPeriod() == 0 ? QString("--") : QString::number(ast->getRotationPeriod()) + QString(" h"); // Period periodVal = ast->getPeriod() == 0 ? QString("--") : QString::number(ast->getPeriod()) + QString(" y"); break; } case SkyObject::COMET: { KSComet* com = (KSComet *)obj; // Perihelion perihelionVal = QString::number(com->getPerihelion()) + " AU"; // Earth MOID moidVal = com->getEarthMOID() == 0 ? QString("--") : QString::number(com->getEarthMOID()) + QString(" AU"); // Orbit ID orbitIdVal = com->getOrbitID(); // Orbit Class orbitClassVal = com->getOrbitClass(); // NEO neoVal = com->isNEO() ? i18n("Yes") : i18n("No"); // Albedo albedoVal = com->getAlbedo() == 0 ? QString("--") : QString::number(com->getAlbedo()); // Diameter diamVal = com->getDiameter() == 0 ? QString("--") : QString::number(com->getDiameter()) + QString(" km"); // Dimensions dimVal = com->getDimensions().isEmpty() ? QString("--") : com->getDimensions() + QString(" km"); // Rotation period rotPeriodVal = com->getRotationPeriod() == 0 ? QString("--") : QString::number(com->getRotationPeriod()) + QString(" h"); // Period periodVal = com->getPeriod() == 0 ? QString("--") : QString::number(com->getPeriod()) + QString(" y"); break; } default: { return; } } // Set column width constraints QVector<QTextLength> constraints; constraints << QTextLength(QTextLength::PercentageLength, 25) << QTextLength(QTextLength::PercentageLength, 25) << QTextLength(QTextLength::PercentageLength, 25) << QTextLength(QTextLength::PercentageLength, 25); m_TableFormat.setColumnWidthConstraints(constraints); QTextTable *table = cursor.insertTable(6, 4, m_TableFormat); table->mergeCells(0, 0, 1, 4); QTextBlockFormat centered; centered.setAlignment(Qt::AlignCenter); table->cellAt(0, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(0, 0).firstCursorPosition().insertText(i18n("Asteroid/Comet details"), m_TableTitleCharFormat); table->cellAt(1, 0).firstCursorPosition().insertText(i18n("Perihelion:"), m_ItemNameCharFormat); table->cellAt(1, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(1, 1).firstCursorPosition().insertText(perihelionVal, m_ItemValueCharFormat); table->cellAt(2, 0).firstCursorPosition().insertText(i18n("Orbit ID:"), m_ItemNameCharFormat); table->cellAt(2, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(2, 1).firstCursorPosition().insertText(orbitIdVal, m_ItemValueCharFormat); table->cellAt(3, 0).firstCursorPosition().insertText(i18n("NEO:"), m_ItemNameCharFormat); table->cellAt(3, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(3, 1).firstCursorPosition().insertText(neoVal, m_ItemValueCharFormat); table->cellAt(4, 0).firstCursorPosition().insertText(i18n("Diameter:"), m_ItemNameCharFormat); table->cellAt(4, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(4, 1).firstCursorPosition().insertText(diamVal, m_ItemValueCharFormat); table->cellAt(5, 0).firstCursorPosition().insertText(i18n("Rotation period:"), m_ItemNameCharFormat); table->cellAt(5, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(5, 1).firstCursorPosition().insertText(rotPeriodVal, m_ItemValueCharFormat); table->cellAt(1, 2).firstCursorPosition().insertText(i18n("Earth MOID:"), m_ItemNameCharFormat); table->cellAt(1, 2).firstCursorPosition().setBlockFormat(centered); table->cellAt(1, 3).firstCursorPosition().insertText(moidVal, m_ItemValueCharFormat); table->cellAt(2, 2).firstCursorPosition().insertText(i18n("Orbit class:"), m_ItemNameCharFormat); table->cellAt(2, 2).firstCursorPosition().setBlockFormat(centered); table->cellAt(2, 3).firstCursorPosition().insertText(orbitClassVal, m_ItemValueCharFormat); table->cellAt(3, 2).firstCursorPosition().insertText(i18n("Albedo:"), m_ItemNameCharFormat); table->cellAt(3, 2).firstCursorPosition().setBlockFormat(centered); table->cellAt(3, 3).firstCursorPosition().insertText(albedoVal, m_ItemValueCharFormat); table->cellAt(4, 2).firstCursorPosition().insertText(i18n("Dimensions:"), m_ItemNameCharFormat); table->cellAt(4, 2).firstCursorPosition().setBlockFormat(centered); table->cellAt(4, 3).firstCursorPosition().insertText(dimVal, m_ItemValueCharFormat); table->cellAt(5, 2).firstCursorPosition().insertText(i18n("Period:"), m_ItemNameCharFormat); table->cellAt(5, 2).firstCursorPosition().setBlockFormat(centered); table->cellAt(5, 3).firstCursorPosition().insertText(periodVal, m_ItemValueCharFormat); }
//! [5] void MainWindow::insertCalendar() { editor->clear(); QTextCursor cursor = editor->textCursor(); cursor.beginEditBlock(); QDate date(selectedDate.year(), selectedDate.month(), 1); //! [5] //! [6] QTextTableFormat tableFormat; tableFormat.setAlignment(Qt::AlignHCenter); tableFormat.setBackground(QColor("#e0e0e0")); tableFormat.setCellPadding(2); tableFormat.setCellSpacing(4); //! [6] //! [7] QVector<QTextLength> constraints; constraints << QTextLength(QTextLength::PercentageLength, 14) << QTextLength(QTextLength::PercentageLength, 14) << QTextLength(QTextLength::PercentageLength, 14) << QTextLength(QTextLength::PercentageLength, 14) << QTextLength(QTextLength::PercentageLength, 14) << QTextLength(QTextLength::PercentageLength, 14) << QTextLength(QTextLength::PercentageLength, 14); tableFormat.setColumnWidthConstraints(constraints); //! [7] //! [8] QTextTable *table = cursor.insertTable(1, 7, tableFormat); //! [8] //! [9] QTextFrame *frame = cursor.currentFrame(); QTextFrameFormat frameFormat = frame->frameFormat(); frameFormat.setBorder(1); frame->setFrameFormat(frameFormat); //! [9] //! [10] QTextCharFormat format = cursor.charFormat(); format.setFontPointSize(fontSize); QTextCharFormat boldFormat = format; boldFormat.setFontWeight(QFont::Bold); QTextCharFormat highlightedFormat = boldFormat; highlightedFormat.setBackground(Qt::yellow); //! [10] //! [11] for (int weekDay = 1; weekDay <= 7; ++weekDay) { QTextTableCell cell = table->cellAt(0, weekDay-1); //! [11] //! [12] QTextCursor cellCursor = cell.firstCursorPosition(); cellCursor.insertText(QString("%1").arg(QDate::longDayName(weekDay)), boldFormat); } //! [12] //! [13] table->insertRows(table->rows(), 1); //! [13] while (date.month() == selectedDate.month()) { int weekDay = date.dayOfWeek(); QTextTableCell cell = table->cellAt(table->rows()-1, weekDay-1); QTextCursor cellCursor = cell.firstCursorPosition(); if (date == QDate::currentDate()) cellCursor.insertText(QString("%1").arg(date.day()), highlightedFormat); else cellCursor.insertText(QString("%1").arg(date.day()), format); date = date.addDays(1); if (weekDay == 7 && date.month() == selectedDate.month()) table->insertRows(table->rows(), 1); } cursor.endEditBlock(); //! [14] setWindowTitle(tr("Calendar for %1 %2" ).arg(QDate::longMonthName(selectedDate.month()) ).arg(selectedDate.year())); }
void DetailsTable::createGeneralTable(SkyObject *obj) { clearContents(); QTextCursor cursor = m_Document->rootFrame()->firstCursorPosition(); //Fill in the data fields //Contents depend on type of object StarObject *s = 0; DeepSkyObject *dso = 0; KSPlanetBase *ps = 0; QString pname, oname; QString objNamesVal, objTypeVal, objDistVal, objSizeVal, objMagVal, objBvVal, objIllumVal; QString objSizeLabel, objMagLabel; switch(obj->type()) { case SkyObject::STAR: { s = (StarObject *)obj; objNamesVal = s->longname(); if(s->getHDIndex() != 0) { if(!s->longname().isEmpty()) { objNamesVal = s->longname() + QString(", HD%1").arg(QString::number(s->getHDIndex())) ; } else { objNamesVal = QString(", HD%1").arg(QString::number(s->getHDIndex())); } } objTypeVal = s->sptype() + ' ' + i18n("star"); objMagVal = i18nc("number in magnitudes", "%1 mag", KGlobal::locale()->formatNumber(s->mag(), 1)); //show to tenths place if(s->getBVIndex() < 30.0) { objBvVal = QString::number(s->getBVIndex(), 'g', 2); } //distance if(s->distance() > 2000. || s->distance() < 0.) // parallax < 0.5 mas { objDistVal = i18nc("larger than 2000 parsecs", "> 2000 pc"); } else if(s->distance() > 50.0) //show to nearest integer { objDistVal = i18nc("number in parsecs", "%1 pc", KGlobal::locale()->formatNumber(s->distance(), 0)); } else if(s->distance() > 10.0) //show to tenths place { objDistVal = i18nc("number in parsecs", "%1 pc", KGlobal::locale()->formatNumber(s->distance(), 1)); } else //show to hundredths place { objDistVal = i18nc("number in parsecs", "%1 pc", KGlobal::locale()->formatNumber(s->distance(), 2)); } //Note multiplicity/variablility in angular size label if(s->isMultiple() && s->isVariable()) { objSizeLabel = i18nc("the star is a multiple star", "multiple") + ','; objSizeVal = i18nc("the star is a variable star", "variable"); } else if(s->isMultiple()) { objSizeLabel = i18nc("the star is a multiple star", "multiple"); } else if(s->isVariable()) { objSizeLabel = i18nc("the star is a variable star", "variable"); } objIllumVal = "--"; break; //End of stars case } case SkyObject::ASTEROID: //[fall through to planets] case SkyObject::COMET: //[fall through to planets] case SkyObject::MOON: //[fall through to planets] case SkyObject::PLANET: { ps = (KSPlanetBase *)obj; objNamesVal = ps->longname(); //Type is "G5 star" for Sun if(ps->name() == "Sun") { objTypeVal = i18n("G5 star"); } else if(ps->name() == "Moon") { objTypeVal = ps->translatedName(); } else if(ps->name() == i18n("Pluto") || ps->name() == "Ceres" || ps->name() == "Eris") // TODO: Check if Ceres / Eris have translations and i18n() them { objTypeVal = i18n("Dwarf planet"); } else { objTypeVal = ps->typeName(); } //Magnitude: The moon displays illumination fraction instead if(obj->name() == "Moon") { objIllumVal = QString("%1 %").arg(KGlobal::locale()->formatNumber(((KSMoon *)obj)->illum()*100., 0)); } objMagVal = i18nc("number in magnitudes", "%1 mag", KGlobal::locale()->formatNumber(ps->mag(), 1)); //show to tenths place //Distance from Earth. The moon requires a unit conversion if(ps->name() == "Moon") { objDistVal = i18nc("distance in kilometers", "%1 km", KGlobal::locale()->formatNumber(ps->rearth() * AU_KM )); } else { objDistVal = i18nc("distance in Astronomical Units", "%1 AU", KGlobal::locale()->formatNumber(ps->rearth())); } //Angular size; moon and sun in arcmin, others in arcsec if(ps->angSize()) { if(ps->name() == "Sun" || ps->name() == "Moon") { // Needn't be a plural form because sun / moon will never contract to 1 arcminute objSizeVal = i18nc("angular size in arcminutes", "%1 arcmin", KGlobal::locale()->formatNumber(ps->angSize())); } else { objSizeVal = i18nc("angular size in arcseconds","%1 arcsec", KGlobal::locale()->formatNumber(ps->angSize() * 60.0)); } } else { objSizeVal = "--"; } break; //End of planets/comets/asteroids case } default: //Deep-sky objects { dso = (DeepSkyObject *)obj; //Show all names recorded for the object if(!dso->longname().isEmpty() && dso->longname() != dso->name()) { pname = dso->translatedLongName(); oname = dso->translatedName(); } else { pname = dso->translatedName(); } if(!dso->translatedName2().isEmpty()) { if(oname.isEmpty()) { oname = dso->translatedName2(); } else { oname += ", " + dso->translatedName2(); } } if(dso->ugc() != 0) { if(!oname.isEmpty()) { oname += ", "; } oname += "UGC " + QString::number(dso->ugc()); } if(dso->pgc() != 0) { if(!oname.isEmpty()) { oname += ", "; } oname += "PGC " + QString::number(dso->pgc()); } if(!oname.isEmpty()) { pname += ", " + oname; } objNamesVal = pname; objTypeVal = dso->typeName(); if(dso->type() == SkyObject::RADIO_SOURCE) { objMagLabel = i18nc("integrated flux at a frequency", "Flux(%1):", dso->customCatalog()->fluxFrequency()); objMagVal = i18nc("integrated flux value", "%1 %2", KGlobal::locale()->formatNumber(dso->flux(), 1), dso->customCatalog()->fluxUnit()); //show to tenths place } else if(dso->mag() > 90.0) { objMagVal = "--"; } else { objMagVal = i18nc("number in magnitudes", "%1 mag", KGlobal::locale()->formatNumber(dso->mag(), 1)); //show to tenths place } //No distances at this point... objDistVal = "--"; //Only show decimal place for small angular sizes if(dso->a() > 10.0) { objSizeVal = i18nc("angular size in arcminutes", "%1 arcmin", KGlobal::locale()->formatNumber(dso->a(), 0)); } else if(dso->a()) { objSizeVal = i18nc("angular size in arcminutes", "%1 arcmin", KGlobal::locale()->formatNumber(dso->a(), 1)); } else { objSizeVal = "--"; } break; //End of deep-space objects case } } //Common to all types: if(obj->type() == SkyObject::CONSTELLATION ) { objTypeVal = KStarsData::Instance()->skyComposite()->getConstellationBoundary()->constellationName(obj); } else { objTypeVal = i18nc("%1 type of sky object (planet, asteroid etc), %2 name of a constellation", "%1 in %2", objTypeVal, KStarsData::Instance()->skyComposite()->getConstellationBoundary()->constellationName(obj)); } QVector<QTextLength> constraints; constraints << QTextLength(QTextLength::PercentageLength, 25) << QTextLength(QTextLength::PercentageLength, 25) << QTextLength(QTextLength::PercentageLength, 25) << QTextLength(QTextLength::PercentageLength, 25); m_TableFormat.setColumnWidthConstraints(constraints); QTextTable *table = cursor.insertTable(5, 4, m_TableFormat); table->mergeCells(0, 0, 1, 4); QTextBlockFormat centered; centered.setAlignment(Qt::AlignCenter); table->cellAt(0, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(0, 0).firstCursorPosition().insertText(i18n("General"), m_TableTitleCharFormat); table->mergeCells(1, 1, 1, 3); table->cellAt(1, 0).firstCursorPosition().insertText(i18n("Names:"), m_ItemNameCharFormat); table->cellAt(1, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(1, 1).firstCursorPosition().insertText(objNamesVal, m_ItemValueCharFormat); table->cellAt(2, 0).firstCursorPosition().insertText(i18n("Type:"), m_ItemNameCharFormat); table->cellAt(2, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(2, 1).firstCursorPosition().insertText(objTypeVal, m_ItemValueCharFormat); table->cellAt(3, 0).firstCursorPosition().insertText(i18n("Distance:"), m_ItemNameCharFormat); table->cellAt(3, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(3, 1).firstCursorPosition().insertText(objDistVal, m_ItemValueCharFormat); table->cellAt(4, 0).firstCursorPosition().insertText(i18n("Size:"), m_ItemNameCharFormat); table->cellAt(4, 0).firstCursorPosition().setBlockFormat(centered); table->cellAt(4, 1).firstCursorPosition().insertText(objSizeVal, m_ItemValueCharFormat); table->cellAt(2, 2).firstCursorPosition().insertText(i18n("Magnitude:"), m_ItemNameCharFormat); table->cellAt(2, 2).firstCursorPosition().setBlockFormat(centered); table->cellAt(2, 3).firstCursorPosition().insertText(objMagVal, m_ItemValueCharFormat); table->cellAt(3, 2).firstCursorPosition().insertText(i18n("B-V index:"), m_ItemNameCharFormat); table->cellAt(3, 2).firstCursorPosition().setBlockFormat(centered); table->cellAt(3, 3).firstCursorPosition().insertText(objBvVal, m_ItemValueCharFormat); table->cellAt(4, 2).firstCursorPosition().insertText(i18n("Illumination:"), m_ItemNameCharFormat); table->cellAt(4, 2).firstCursorPosition().setBlockFormat(centered); table->cellAt(4, 3).firstCursorPosition().insertText(objIllumVal, m_ItemValueCharFormat); }