Beispiel #1
0
void PrintTreeWidget::printRows(QPainter *p, int sItem, int eItem)
{
    QRect       rect;
    QBrush      bbrush;
    QString     tmpSt;
    int         yPos;
    int         xPos = prLeftMargin; 
    
    int         numCols;
    QTreeWidgetItem *curItem;
    
    // Now, draw the report title, centered on the page.
    p->setFont(QFont("helvetica", 8, QFont::Normal));

    numCols = myTree->columnCount();
    if (!numCols) return;
    if (numCols > 20) numCols = 20;

    yPos     = 130;
    for (int i = sItem; i < eItem; i++) {
        curItem = myTree->topLevelItem(i);

        if (curItem) {
            if (!myPrintSelectedOnly || curItem->isSelected()) {
                xPos     = prLeftMargin;
                for (int i = 0; i < numCols; i++) {
                    rect.setCoords(xPos+1, yPos, xPos + prColWidths[i] - 1, yPos+11);
                    p->drawText(rect, curItem->textAlignment(i)|Qt::AlignVCenter, curItem->text(i));
                    xPos += prColWidths[i];
                }
                yPos += 12;
            }
        }
    }
}
Beispiel #2
0
int QTreeWidgetItemProto::textAlignment(int column)	const
{
  QTreeWidgetItem *item = qscriptvalue_cast<QTreeWidgetItem*>(thisObject());
  if (item)
    return item->textAlignment(column);
  return 0;
}
void TreeWidgetHeaderSetupDialog::setHeader(QTreeWidget* view, int)
{
    m_view = view;

    QTreeWidgetItem* header = view->headerItem();
    for( int i=0;i<header->columnCount();i++ )
    {
        QTreeWidgetItem* item = new QTreeWidgetItem(ui->MasterView);
        item->setText(0, header->text(i));
        item->setTextAlignment(0, header->textAlignment(i));
        item->setCheckState(0, view->isColumnHidden(i) ? Qt::Unchecked : Qt::Checked);
    }
}
Beispiel #4
0
bool wxListCtrl::GetColumn(int col, wxListItem& info) const
{
    QTreeWidgetItem *qitem = m_qtTreeWidget->headerItem();
    if ( qitem != NULL )
    {
        info.SetText(wxQtConvertString(qitem->text(col)));
        info.SetAlign(wxQtConvertAlignFlag(qitem->textAlignment(col)));
        info.SetWidth(m_qtTreeWidget->columnWidth(col));
        return true;
    }
    else
        return false;
}
Beispiel #5
0
/**
 * print()
 *
 * Initiates the actual printing of the list.
 */
void EmailTreeWidget::emailReport()
{
    int     colWidths[20];
    uint    numCols;
    QString fmtStr;
    char    tmpStr[4096];
    QString tmpQstr;
    QString colStr;
    QString txtBody;
    QString txtStr;
    QString csvName;
    QDate   tmpDate = QDate::currentDate();
    QTime   tmpTime = QTime::currentTime();
    QTreeWidgetItem *hdr;

    numCols = myTree->columnCount();
    
    if (!numCols) return;

    hdr = myTree->headerItem();

    //debug(5,"QListViewToCSV() returned %d lines\n", QListViewToCSV(myTree, "/tmp/test.csv"));

    // Get the width of each header item.
    for (uint i = 0; i < numCols; i++) {
        colWidths[i] = hdr->text(i).length();
    }

    // Now, get the longest item for each of the keys.
    QTreeWidgetItem *curItem;
    for (int j = 0; j < myTree->topLevelItemCount(); j++) {
        curItem = myTree->topLevelItem(j);
        for (uint i = 0; i < numCols; i++) {
            if (curItem->text(i).length() > colWidths[i]) {
                colWidths[i] = curItem->text(i).length();
            }
        }
    }
    
    // If dates are allowed, then put them in here.
    if (showDateLine) {
        txtBody += myDateLine;
        txtBody += "\n\n";
    }
    
    // Okay, now print our headers
    for (uint i = 0; i < numCols; i++) {
        colStr  = hdr->text(i);
        if (hdr->textAlignment(i) & Qt::AlignRight) {
            colStr = colStr.rightJustify(colWidths[i]+1);
        } else {
            colStr = colStr.leftJustify(colWidths[i]+1);
        }
        txtBody += colStr;
    }
    txtBody += "\n";

    // And now a line seperating the headers from the data.
    for (uint i = 0; i < numCols; i++) {
        strcpy(tmpStr, "");
        for (int n = 0; n < colWidths[i]; n++) strcat(tmpStr, "=");
        
        txtBody += tmpStr;
        txtBody += " ";
        
    }
    txtBody += "\n";
    
    // And now, finally, the data itself
    for (int j = 0; j < myTree->topLevelItemCount(); j++) {
        curItem = myTree->topLevelItem(j);
        for (uint i = 0; i < numCols; i++) {
            fmtStr = "%";
            if (!(curItem->textAlignment(i) & AlignRight)) fmtStr += "-";
            sprintf(tmpStr, "%d", colWidths[i]);
            fmtStr += tmpStr;
            fmtStr += "s ";
            txtBody += txtStr.sprintf(fmtStr.ascii(), curItem->text(i).ascii());
        }
        txtBody += "\n";
    }
    
    txtBody += txtStr.sprintf("\n\nReport generated on %s at %s\n\n", tmpDate.toString().ascii(), tmpTime.toString().ascii());

    // Now, create the email.
    QString     fromAddr;
    QString     subj;

    fromAddr = fromAddr.sprintf("%s@%s", curUser().userName, cfgVal("EmailDomain"));
    subj = subj.sprintf("Report - %s", myTitle.ascii());

    EmailMessage    msg;

    msg.setFrom(fromAddr);
    msg.setTo(emailAddr->text());
    msg.setSubject(subj);

    // Only allow them to not send the body if we're attaching a CSV
    if (includeCSV->isChecked()) {
        if (includePlainText->isChecked()) {
            msg.setBody(txtBody);
        }
    } else {
        msg.setBody(txtBody);
    }

    // Are we attaching the CSV part?
    if (includeCSV->isChecked()) {
        // Create a temp file name.
        csvName = makeTmpFileName("/tmp/report-XXXXXX.csv");
        QTreeWidgetToCSV(myTree, csvName.ascii());

        msg.addAttachment(csvName.ascii(), "text/csv", "report.csv");
    }

    msg.send();

    // Delete our csv file if necessary
    if (includeCSV->isChecked()) {
        unlink(csvName.ascii());
    }

    QMessageBox::information(this, "Email Report", "The report has been spooled for mailing.");
    close();
}
Beispiel #6
0
void PluginKateXMLCheckView::slotProcExited(int exitCode, QProcess::ExitStatus exitStatus)
{
    Q_UNUSED(exitCode);

    // FIXME: doesn't work correct the first time:
    //if( m_dockwidget->isDockBackPossible() ) {
    //	m_dockwidget->dockBack();
//	}

    if (exitStatus != QProcess::NormalExit) {
        QTreeWidgetItem *item = new QTreeWidgetItem();
        item->setText(0, QString("1").rightJustified(4,' '));
        item->setText(3, "Validate process crashed.");
        listview->addTopLevelItem(item);
        return;
    }

    qDebug() << "slotProcExited()";
    QApplication::restoreOverrideCursor();
    delete m_tmp_file;
    QString proc_stderr = QString::fromLocal8Bit(m_proc.readAllStandardError());
    m_tmp_file=0;
    listview->clear();
    uint list_count = 0;
    uint err_count = 0;
    if( ! m_validating ) {
        // no i18n here, so we don't get an ugly English<->Non-english mixup:
        QString msg;
        if( m_dtdname.isEmpty() ) {
            msg = "No DOCTYPE found, will only check well-formedness.";
        } else {
            msg = '\'' + m_dtdname + "' not found, will only check well-formedness.";
        }
        QTreeWidgetItem *item = new QTreeWidgetItem();
        item->setText(0, QString("1").rightJustified(4,' '));
        item->setText(3, msg);
        listview->addTopLevelItem(item);
        list_count++;
    }
    if( ! proc_stderr.isEmpty() ) {
        QStringList lines = proc_stderr.split("\n", QString::SkipEmptyParts);
        QString linenumber, msg;
        int line_count = 0;
        for(QStringList::Iterator it = lines.begin(); it != lines.end(); ++it) {
            QString line = *it;
            line_count++;
            int semicolon_1 = line.indexOf(':');
            int semicolon_2 = line.indexOf(':', semicolon_1+1);
            int semicolon_3 = line.indexOf(':', semicolon_2+2);
            int caret_pos = line.indexOf('^');
            if( semicolon_1 != -1 && semicolon_2 != -1 && semicolon_3 != -1 ) {
                linenumber = line.mid(semicolon_1+1, semicolon_2-semicolon_1-1).trimmed();
                linenumber = linenumber.rightJustified(6, ' ');	// for sorting numbers
                msg = line.mid(semicolon_3+1, line.length()-semicolon_3-1).trimmed();
            } else if( caret_pos != -1 || line_count == lines.size() ) {
                // TODO: this fails if "^" occurs in the real text?!
                if( line_count == lines.size() && caret_pos == -1 ) {
                    msg = msg+'\n'+line;
                }
                QString col = QString::number(caret_pos);
                if( col == "-1" ) {
                    col = "";
                }
                err_count++;
                list_count++;
                QTreeWidgetItem *item = new QTreeWidgetItem();
                item->setText(0, QString::number(list_count).rightJustified(4,' '));
                item->setText(1, linenumber);
                item->setTextAlignment(1, (item->textAlignment(1) & ~Qt::AlignHorizontal_Mask) | Qt::AlignRight);
                item->setText(2, col);
                item->setTextAlignment(2, (item->textAlignment(2) & ~Qt::AlignHorizontal_Mask) | Qt::AlignRight);
                item->setText(3, msg);
                listview->addTopLevelItem(item);
            } else {
                msg = msg+'\n'+line;
            }
        }
    }
    if( err_count == 0 ) {
        QString msg;
        if( m_validating ) {
            msg = "No errors found, document is valid.";	// no i18n here
        } else {
            msg = "No errors found, document is well-formed.";	// no i18n here
        }
        QTreeWidgetItem *item = new QTreeWidgetItem();
        item->setText(0, QString::number(list_count+1).rightJustified(4,' '));
        item->setText(3, msg);
        listview->addTopLevelItem(item);
    }
}