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

Class Index

killustrator'PStateManager (./koffice/killustrator/share/PStateManager.h:32)

class PStateManager : public QObject {
  Q_OBJECT
protected:
  PStateManager ();

public:
  static PStateManager* instance ();

  void readDefaultSettings ();
  
  void addRecentFile (const char* fname);
  QStrList getRecentFiles ();

  MeasurementUnit defaultMeasurementUnit ();
  void setDefaultMeasurementUnit (MeasurementUnit unit);

  float smallStepSize ();
  float bigStepSize ();
  void setStepSizes (float small, float big);

  float duplicateXOffset ();
  float duplicateYOffset ();
  void setDuplicateOffsets (float x, float y);

  bool showSplashScreen ();

signals:
  void recentFilesChanged ();
  void settingsChanged ();

public slots:
  void saveDefaultSettings ();

private:
  QStrList recentFiles;
  static PStateManager* managerInstance;
  MeasurementUnit defaultUnit;
  float dupXOff, dupYOff;
  float smallStep, bigStep;
  bool showSplash;
};

killustrator'PStateManager::PStateManager() (./koffice/killustrator/share/PStateManager.cc:38)

PStateManager::PStateManager () {
  defaultUnit = UnitPoint;
  readDefaultSettings ();
}


killustrator'PStateManager::instance() (./koffice/killustrator/share/PStateManager.cc:43)

PStateManager* PStateManager::instance () {
  if (managerInstance == 0L)
    managerInstance = new PStateManager ();
  return managerInstance;
}


killustrator'PStateManager::readDefaultSettings() (./koffice/killustrator/share/PStateManager.cc:49)

void PStateManager::readDefaultSettings () {
#if NEWKDE
  KConfig* config = kapp->config ();
#else
  KConfig* config = kapp->getConfig ();
#endif
  QString oldgroup = config->group ();
  
  config->setGroup ("General");
  QString value = config->readEntry ("DefaultUnit", "pt");
  if (value == "mm")
    defaultUnit = UnitMillimeter;
  else if (value == "inch")
    defaultUnit = UnitInch;
  else if (value == "cm")
    defaultUnit = UnitCentimeter;
  else if (value == "pica")
    defaultUnit = UnitPica;
  else if (value == "didot")
    defaultUnit = UnitDidot;
  else if (value == "cicero")
    defaultUnit = UnitCicero;  
  else
    defaultUnit = UnitPoint;
  UnitBox::setDefaultMeasurementUnit (defaultUnit);

  smallStep = config->readDoubleNumEntry ("SmallStep", 2.0);
  bigStep = config->readDoubleNumEntry ("BigStep", 10.0);
  dupXOff = config->readDoubleNumEntry ("DuplicateXOffset", 10.0);
  dupYOff = config->readDoubleNumEntry ("DuplicateYOffset", 10.0);

  showSplash = config->readBoolEntry ("ShowSplash", false);

  config->setGroup ("DefaultObjectProperties");

  GObject::OutlineInfo oInfo;
  oInfo.color = config->readColorEntry ("OutlineColor", &black);
  oInfo.style = (PenStyle) config->readNumEntry ("OutlineStyle", SolidLine);
  oInfo.width = (BrushStyle) config->readDoubleNumEntry ("OutlineWidth", 1.0);
  oInfo.mask = GObject::OutlineInfo::Color | GObject::OutlineInfo::Style | 
    GObject::OutlineInfo::Width;
  GObject::setDefaultOutlineInfo (oInfo);

  GObject::FillInfo fInfo;
  fInfo.color = config->readColorEntry ("FillColor", &white);
  fInfo.fstyle = GObject::FillInfo::NoFill;
  //  fInfo.style = (BrushStyle) config->readNumEntry ("FillStyle", NoBrush);
  fInfo.mask = GObject::FillInfo::Color | GObject::FillInfo::FillStyle;
  GObject::setDefaultFillInfo (fInfo);

  GText::TextInfo tInfo;
  QFont tmp(QFont::defaultFont ());
  tInfo.font = config->readFontEntry ("Font", &tmp);
  tInfo.mask = GText::TextInfo::Font;
  GText::setDefaultTextInfo (tInfo);

  config->setGroup ("RecentFiles");
  recentFiles.clear ();
  for (unsigned int i = 0; i < 4; i++) {
    QString key;
    key.sprintf ("%d", i + 1);
    QString file = config->readEntry ((const char *) key);
    if (! file.isNull ())
      recentFiles.append ((const char*) file);
  }

  config->setGroup (oldgroup);

}
  

killustrator'PStateManager::addRecentFile() (./koffice/killustrator/share/PStateManager.cc:119)

void PStateManager::addRecentFile (const char* fname) {
  unsigned int i;

  for (i = 0; i < recentFiles.count (); i++) {
    if (::strcmp (recentFiles.at (i), fname) == 0) {
      // file already in the list
      if (i == 0)
	// file is most recent file -> ignore it
	return;
      else
	// remove the old entry
	recentFiles.remove (i);
    }
  }
  // now insert the new entry
  recentFiles.insert (0, fname);
  if (recentFiles.count () > 4) 
    recentFiles.removeLast ();
  emit recentFilesChanged ();
}


killustrator'PStateManager::getRecentFiles() (./koffice/killustrator/share/PStateManager.cc:140)

QStrList PStateManager::getRecentFiles () {
  return recentFiles;
}


killustrator'PStateManager::defaultMeasurementUnit() (./koffice/killustrator/share/PStateManager.cc:144)

MeasurementUnit PStateManager::defaultMeasurementUnit () {
  return defaultUnit;
}


killustrator'PStateManager::setDefaultMeasurementUnit() (./koffice/killustrator/share/PStateManager.cc:148)

void PStateManager::setDefaultMeasurementUnit (MeasurementUnit unit) {
  MeasurementUnit old = defaultUnit;
  defaultUnit = unit;
  UnitBox::setDefaultMeasurementUnit (defaultUnit);
  if (old != defaultUnit)
    emit settingsChanged ();
}


killustrator'PStateManager::smallStepSize() (./koffice/killustrator/share/PStateManager.cc:156)

float PStateManager::smallStepSize () {
  return smallStep;
}


killustrator'PStateManager::bigStepSize() (./koffice/killustrator/share/PStateManager.cc:160)

float PStateManager::bigStepSize () {
  return bigStep;
}


killustrator'PStateManager::setStepSizes() (./koffice/killustrator/share/PStateManager.cc:164)

void PStateManager::setStepSizes (float small, float big) {
  smallStep = small;
  bigStep = big;
  emit settingsChanged ();
}


killustrator'PStateManager::duplicateXOffset() (./koffice/killustrator/share/PStateManager.cc:170)

float PStateManager::duplicateXOffset () {
  return dupXOff;
}


killustrator'PStateManager::duplicateYOffset() (./koffice/killustrator/share/PStateManager.cc:174)

float PStateManager::duplicateYOffset () {
  return dupYOff;
}


killustrator'PStateManager::setDuplicateOffsets() (./koffice/killustrator/share/PStateManager.cc:178)

void PStateManager::setDuplicateOffsets (float x, float y) {
  dupXOff = x;
  dupYOff = y;
  emit settingsChanged ();
}


killustrator'PStateManager::showSplashScreen() (./koffice/killustrator/share/PStateManager.cc:184)

bool PStateManager::showSplashScreen () {
  return showSplash;
}


killustrator'PStateManager::saveDefaultSettings() (./koffice/killustrator/share/PStateManager.cc:188)

void PStateManager::saveDefaultSettings () {
#if NEWKDE
  KConfig* config = kapp->config ();
#else
  KConfig* config = kapp->getConfig ();
#endif
  QString oldgroup = config->group ();

  config->setGroup ("General");
  switch (defaultUnit) {
  case UnitPoint:
    config->writeEntry ("DefaultUnit", "pt");
    break;
  case UnitMillimeter:
    config->writeEntry ("DefaultUnit", "mm");
    break;
  case UnitInch:
    config->writeEntry ("DefaultUnit", "inch");
    break;
  case UnitCentimeter:
    config->writeEntry ("DefaultUnit", "cm");
    break;
  case UnitPica:
    config->writeEntry ("DefaultUnit", "pica");
    break;
  case UnitDidot:
    config->writeEntry ("DefaultUnit", "didot");
    break;
  case UnitCicero:
    config->writeEntry ("DefaultUnit", "cicero");
    break;
  }

  config->writeEntry ("SmallStep", smallStep);
  config->writeEntry ("BigStep", bigStep);
  config->writeEntry ("DuplicateXOffset", dupXOff);
  config->writeEntry ("DuplicateYOffset", dupYOff);

  config->setGroup ("DefaultObjectProperties");

  GObject::OutlineInfo oInfo = GObject::getDefaultOutlineInfo ();
  config->writeEntry ("OutlineColor", oInfo.color);
  config->writeEntry ("OutlineStyle", (int) oInfo.style);
  config->writeEntry ("OutlineWidth", (double) oInfo.width);

  GObject::FillInfo fInfo = GObject::getDefaultFillInfo ();
  config->writeEntry ("FillColor", fInfo.color);
  //  config->writeEntry ("FillStyle", (int) fInfo.style);

  GText::TextInfo tInfo = GText::getDefaultTextInfo ();
  config->writeEntry ("Font", tInfo.font);

  config->setGroup ("RecentFiles");
  for (unsigned int i = 0; i < recentFiles.count (); i++) {
    QString key;
    key.sprintf ("%d", i + 1);
    config->writeEntry ((const char *) key, recentFiles.at (i));
  }

  config->setGroup (oldgroup);
  config->sync ();
}