Source Code (Use browser search to find items of interest.)

Class Index

kdelibs'KTextPrintConfig (./kdelibs/kwrite/ktextprint.h:131)

class KTextPrintConfig : public QObject {
    Q_OBJECT
    friend KTextPrintDialog;
  public:
    enum Media {
      A4,
      B5,
      Letter,
      Legal,
      Executive,
      A0,
      A1,
      A2,
      A3,
      A5,
      A6,
      A7,
      A8,
      A9,
      B0,
      B1,
      B10,
      B2,
      B3,
      B4,
      B6,
      B7,
      B8,
      B9,
      C5E,
      Comm10E,
      DLE,
      Folio,
      Ledger,
      Tabloid,
      NPageSize};

    KTextPrintConfig();
    static void print(QWidget *parent, KConfig *, bool dialog,
      const QString &title, int docLines, QObject *receiver, const char *member);
    void readConfig(KConfig *);
    void writeConfig(KConfig *);
    void setData(KTextPrintConfigData &);
    void getData(KTextPrintConfigData &);
  signals:
    void doPrint(KTextPrint &);

  protected:
    int m_destination;
    QStringList m_printers;
    QString m_command;
    int m_copies;
    QString m_fileName;
    KTextPrint::ColorMode m_colorMode;
    KTextPrint::Orientation m_orientation;
    Media m_media;
    int m_numLines;
    int m_numCols;
    int m_numRows;
    int m_countStep;
    int m_flags;
};


kdelibs'KTextPrintConfig::KTextPrintConfig() (./kdelibs/kwrite/ktextprint.cpp:503)

KTextPrintConfig::KTextPrintConfig() {
  // Defaults for KTextPrint Configuration
  m_destination = 0;
  m_command = "lpr -P%p -#%c";
  m_copies = 1;
  m_fileName = "out.ps";
  m_media = A4;
  m_orientation = KTextPrint::Portrait;
  m_colorMode = KTextPrint::BlackWhite;
  m_numCols = 1;
  m_numRows = 1;
  m_numLines = 70;
  m_countStep = 5;
  m_flags = KTextPrint::Title | KTextPrint::PageNumbers;
}


kdelibs'KTextPrintConfig::print() (./kdelibs/kwrite/ktextprint.cpp:519)

void KTextPrintConfig::print(QWidget *parent, KConfig *config, bool dialog,
  const QString &title, int docLines, QObject *receiver, const char *member) {

  KTextPrintConfig textPrintConfig;
  bool accepted;

  textPrintConfig.readConfig(config);
  if (dialog || (textPrintConfig.m_destination == 0
    && textPrintConfig.m_printers.count() == 0)) {

    KTextPrintDialog *dlg;

    dlg = new KTextPrintDialog(parent, textPrintConfig);
    accepted = (dlg->exec() == QDialog::Accepted);
    if (accepted) dlg->getData(textPrintConfig);
    delete dlg;
  } else accepted = true;

  if (accepted) {
    KTextPrintConfigData data;

    // connect callback
    connect(&textPrintConfig, SIGNAL(doPrint(KTextPrint &)), receiver, member);
    // get data for KTextPrint
    textPrintConfig.getData(data);
    data.title = title;
    data.docLines = docLines;

    if (textPrintConfig.m_destination == 0) {
      // to printer

      // substitute command
      QString program(textPrintConfig.m_command);
      program.replace(QRegExp("%p"), textPrintConfig.m_printers.first());
      program.replace(QRegExp("%c"), QString::number(textPrintConfig.m_copies));
      // create pipe
      KPipe p(program);
      p.open();
      // ceate text printer
      KTextPrint printer(data, &p);
      // activate callback
      emit textPrintConfig.doPrint(printer);
      // close pipe and check status
      p.close();
      if (p.status() != IO_Ok) {
        KMessageBox::sorry(parent,
          i18n("Error executing printer program!"),
          i18n("Print"));
      }
    } else {
      // to file

      // create file
      QFile f(textPrintConfig.m_fileName);
      if (f.open(IO_WriteOnly)) {
        // ceate text printer
        KTextPrint printer(data, &f);
        // activate callback
        emit textPrintConfig.doPrint(printer);
        // close file and check status
        f.close();
        if (f.status() != IO_Ok) {
          KMessageBox::sorry(parent,
            i18n("Error writing file!"),
            i18n("Print"));
        }
      } else {
        KMessageBox::sorry(parent,
          i18n("Error opening file!"),
          i18n("Print"));
      }
    }
    textPrintConfig.writeConfig(config);
  }
}


kdelibs'KTextPrintConfig::readConfig() (./kdelibs/kwrite/ktextprint.cpp:595)

void KTextPrintConfig::readConfig(KConfig *config) {
  int z;

  // read from KConfig
  config->setGroup("KTextPrint Options");

  m_destination = config->readNumEntry("Destination", m_destination);

  for (z = 0; z < 6; z++) {
    appendToStrList(m_printers, config->readEntry(QString("Printer%1").arg(z)));
  }

  m_command = config->readEntry("Command", m_command);
  m_copies = config->readNumEntry("Copies", m_copies);
  m_fileName = config->readEntry("FileName", m_fileName);
  m_colorMode = (KTextPrint::ColorMode) config->readNumEntry("ColorMode", (int) m_colorMode);
  m_orientation = (KTextPrint::Orientation) config->readNumEntry("Orientation", (int) m_orientation);
  m_media = (Media) config->readNumEntry("Media", (int) m_media);
  m_numCols = config->readNumEntry("Cols", m_numCols);
  m_numRows = config->readNumEntry("Rows", m_numRows);
  m_numLines = config->readNumEntry("Lines", m_numLines);
  m_countStep = config->readNumEntry("CountStep", m_countStep);
  m_flags = config->readNumEntry("Flags", m_flags);
}



kdelibs'KTextPrintConfig::writeConfig() (./kdelibs/kwrite/ktextprint.cpp:621)

void KTextPrintConfig::writeConfig(KConfig *config) {
  int z;

  config->setGroup("KTextPrint Options");

  config->writeEntry("Destination", m_destination);

  QStringList::Iterator it = m_printers.begin();
  z = 0;
  while (it != m_printers.end() && z < 6) {
    config->writeEntry(QString("Printer%1").arg(z), *it);
    it++;
    z++;
  }

  config->writeEntry("Command", m_command);
  config->writeEntry("Copies", m_copies);
  config->writeEntry("FileName", m_fileName);
  config->writeEntry("ColorMode", (int) m_colorMode);
  config->writeEntry("Orientation", (int) m_orientation);
  config->writeEntry("Media", (int) m_media);
  config->writeEntry("Cols", m_numCols);
  config->writeEntry("Rows", m_numRows);
  config->writeEntry("Lines", m_numLines);
  config->writeEntry("CountStep", m_countStep);
  config->writeEntry("Flags", m_flags);
}


kdelibs'KTextPrintConfig::getData() (./kdelibs/kwrite/ktextprint.cpp:649)

void KTextPrintConfig::getData(KTextPrintConfigData &data) {
  MediaDef *media = &mediaList[m_media];

  data.paperWidth = media->width;
  data.paperHeight = media->height;
  data.mediaName = media->name;
  data.orientation = m_orientation;
  data.colorMode = m_colorMode;
  data.numCols = m_numCols;
  data.numRows = m_numRows;
  data.numLines = m_numLines;
  data.countStep = m_countStep;
  data.flags = m_flags;
}