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

Class Index

kwrite'KGuiCmd (./kdeutils/kwrite/kguicommand.h:49)

class KGuiCmd : public QObject {
  Q_OBJECT
    friend KGuiCmdCategory;
    friend KGuiCmdManager;
    friend KGuiCmdActivator;
    friend KGuiCmdCategoryActivator;
  public:
    KGuiCmd(int cmdNum, const QString &name, KGuiCmdCategory *);
//    int getCommand() {return cmdNum;}
    int accelCount();
    void addAccel(int keyCode1, int keyCode2);
    QString getAccelString(int pos = 0);
    int containsAccel(int keyCode1, int keyCode2);
    void removeAccel(int pos);
    void removeAccel(int keyCode1, int keyCode2);
    QString getName() {return i18n(name);}
    QString getCategoryName();

    void makeDefault();
    void restoreDefault();
    void saveAccels();
    void restoreAccels();
    void changeAccels();
    void readConfig(KConfig *);
    void writeConfig(KConfig *);

    void emitAccelString();
  signals:
    void changed(const QString &accelString);
  protected:
    static const int nAccels = 4;

    int cmdNum;
    QString name;
    KGuiCmdCategory *category;

    KGuiCmdAccel accels[nAccels];
    KGuiCmdAccel oldAccels[nAccels]; //for "cancel" in the dialog
    KGuiCmdAccel defaultAccels[nAccels];
};


kwrite'KGuiCmd::KGuiCmd() (./kdeutils/kwrite/kguicommand.cpp:215)

KGuiCmd::KGuiCmd(int cmdNum, const QString &name, KGuiCmdCategory *c)
  : cmdNum(cmdNum), name(name), category(c) {

  int z;
  for (z = 0; z < nAccels; z++) accels[z].keyCode1 = 0;
}


kwrite'KGuiCmd::accelCount() (./kdeutils/kwrite/kguicommand.cpp:222)

int KGuiCmd::accelCount() {
  int z;

  for (z = 0; z < nAccels; z++) {
    if (accels[z].keyCode1 == 0) break;
  }
  return z;
}


kwrite'KGuiCmd::addAccel() (./kdeutils/kwrite/kguicommand.cpp:231)

void KGuiCmd::addAccel(int keyCode1, int keyCode2) {
  int z;

  for (z = 0; z < nAccels; z++) {
    if (accels[z].keyCode1 == 0) {
      accels[z].keyCode1 = keyCode1;
      accels[z].keyCode2 = keyCode2;
      break;
    }
  }
}


kwrite'KGuiCmd::getAccelString() (./kdeutils/kwrite/kguicommand.cpp:243)

QString KGuiCmd::getAccelString(int pos) {
  QString res;
  int keyCode;

  keyCode = accels[pos].keyCode1;
  if (keyCode != 0) {
    res = keyToLanguage(keyCode);

    keyCode = accels[pos].keyCode2;
    if (keyCode != 0) {
      res += ", ";
      res += keyToLanguage(keyCode);
    }
  }
  return res;
}


kwrite'KGuiCmd::containsAccel() (./kdeutils/kwrite/kguicommand.cpp:260)

int KGuiCmd::containsAccel(int keyCode1, int keyCode2) {
  int z;

  for (z = 0; z < nAccels; z++) {
    if (accels[z].keyCode1 == 0) break;
    if (accels[z].keyCode1 == keyCode1 && (accels[z].keyCode2 == keyCode2
      || accels[z].keyCode2 == 0 || keyCode2 == 0)) {

      return z;
    }

    if (accels[z].equals(keyCode1, keyCode2)) return z;
  }
  return -1;
}


kwrite'KGuiCmd::removeAccel() (./kdeutils/kwrite/kguicommand.cpp:276)

void KGuiCmd::removeAccel(int z) {
  while (z < nAccels -1) {
    accels[z] = accels[z +1];
    z++;
  }
  accels[z].keyCode1 = 0;
}


kwrite'KGuiCmd::removeAccel() (./kdeutils/kwrite/kguicommand.cpp:284)

void KGuiCmd::removeAccel(int keyCode1, int keyCode2) {
  int n;

  while ((n = containsAccel(keyCode1, keyCode2)) >= 0) {
    removeAccel(n);
  }
}


kwrite'KGuiCmd::getCategoryName() (./kdeutils/kwrite/kguicommand.cpp:292)

QString KGuiCmd::getCategoryName() {
  return i18n(category->name);
}


kwrite'KGuiCmd::makeDefault() (./kdeutils/kwrite/kguicommand.cpp:296)

void KGuiCmd::makeDefault() {
  int z;
  for (z = 0; z < nAccels; z++) defaultAccels[z] = accels[z];
}


kwrite'KGuiCmd::restoreDefault() (./kdeutils/kwrite/kguicommand.cpp:301)

void KGuiCmd::restoreDefault() {
  int z;
  for (z = 0; z < nAccels; z++) accels[z] = defaultAccels[z];
}


kwrite'KGuiCmd::saveAccels() (./kdeutils/kwrite/kguicommand.cpp:306)

void KGuiCmd::saveAccels() {
  int z;
  for (z = 0; z < nAccels; z++) oldAccels[z] = accels[z];
}


kwrite'KGuiCmd::restoreAccels() (./kdeutils/kwrite/kguicommand.cpp:311)

void KGuiCmd::restoreAccels() {
  int z;
  for (z = 0; z < nAccels; z++) accels[z] = oldAccels[z];
}


kwrite'KGuiCmd::changeAccels() (./kdeutils/kwrite/kguicommand.cpp:316)

void KGuiCmd::changeAccels() {
  if (!accels[0].equals(oldAccels[0].keyCode1, oldAccels[0].keyCode2)) {
    emit changed(getAccelString());
  }
}



kwrite'KGuiCmd::readConfig() (./kdeutils/kwrite/kguicommand.cpp:323)

void KGuiCmd::readConfig(KConfig *config) {
  QString s;
  int z, nextAccel, next;

  s = removeAnd(name);
  if (!config->hasKey(s)) return;
  s = config->readEntry(s);
//  s.detach(); //for QT < 2
  while ((z = s.find(' ')) != -1) s.remove(z, 1);

  if (s == "(Default)") return;

  for (z = 0; z < nAccels; z++) {
    accels[z].keyCode1 = 0;
    accels[z].keyCode2 = 0;
  }


  z = 0;
  while (!s.isEmpty()) {
    nextAccel = s.find(';');
    if (nextAccel == -1) nextAccel = s.length();

    next = s.findRev(',', nextAccel -1);
    if (next != -1) {
      accels[z].keyCode2 = myStringToKey(s.mid(next +1, nextAccel - next -1));
    } else next = nextAccel;
    accels[z].keyCode1 = myStringToKey(s.left(next));
    s.remove(0, nextAccel +1);
    z++;
  }
}


kwrite'KGuiCmd::writeConfig() (./kdeutils/kwrite/kguicommand.cpp:356)

void KGuiCmd::writeConfig(KConfig *config) {
  QString key;
  int count, z;
  bool def;

  key = removeAnd(name);
  count = accelCount();

  //are current accelerators the default accelerators?
  if (count < nAccels && defaultAccels[count].keyCode1 != 0) {
    def = false;
  } else {
    def = true;
    for (z = 0; z < count; z++) {
      if (!defaultAccels[z].equals(accels[z].keyCode1, accels[z].keyCode2)) {
        def = false;
        break;
      }
    }
  }

  if (def) {
    //default
    //is there a possibility to remove a key?
    if (config->hasKey(key)) config->writeEntry(key, "(Default)");
  } else {
    //not default
    QString s;

    for (z = 0; z < count; z++) {
      if (z != 0) s += ';';
      s += keyToString(accels[z].keyCode1);
      if (accels[z].keyCode2 != 0) {
        s += ',';
        s += keyToString(accels[z].keyCode2);
      }
    }
    config->writeEntry(key, s);
  }
}



kwrite'KGuiCmd::emitAccelString() (./kdeutils/kwrite/kguicommand.cpp:398)

void KGuiCmd::emitAccelString() {
  emit changed(getAccelString());
}