KXmlCommandSelector::KXmlCommandSelector(bool canBeNull, QWidget *parent, const char *name, KDialogBase *dlg) : QWidget(parent, name) { m_cmd = new QComboBox(this); connect(m_cmd, SIGNAL(activated(int)), SLOT(slotCommandSelected(int))); QPushButton *m_add = new KPushButton(this); QPushButton *m_edit = new KPushButton(this); m_add->setPixmap(SmallIcon("filenew")); m_edit->setPixmap(SmallIcon("configure")); connect(m_add, SIGNAL(clicked()), SLOT(slotAddCommand())); connect(m_edit, SIGNAL(clicked()), SLOT(slotEditCommand())); QToolTip::add(m_add, i18n("New command")); QToolTip::add(m_edit, i18n("Edit command")); m_shortinfo = new QLabel(this); m_helpbtn = new KPushButton(this); m_helpbtn->setIconSet(SmallIconSet("help")); connect(m_helpbtn, SIGNAL(clicked()), SLOT(slotHelpCommand())); QToolTip::add(m_helpbtn, i18n("Information")); m_helpbtn->setEnabled(false); m_line = 0; m_usefilter = 0; QPushButton *m_browse = 0; QVBoxLayout *l0 = new QVBoxLayout(this, 0, 10); if(canBeNull) { m_line = new QLineEdit(this); m_browse = new KPushButton(KGuiItem(i18n("&Browse..."), "fileopen"), this); m_usefilter = new QCheckBox(i18n("Use co&mmand:"), this); connect(m_browse, SIGNAL(clicked()), SLOT(slotBrowse())); connect(m_usefilter, SIGNAL(toggled(bool)), m_line, SLOT(setDisabled(bool))); connect(m_usefilter, SIGNAL(toggled(bool)), m_browse, SLOT(setDisabled(bool))); connect(m_usefilter, SIGNAL(toggled(bool)), m_cmd, SLOT(setEnabled(bool))); connect(m_usefilter, SIGNAL(toggled(bool)), m_add, SLOT(setEnabled(bool))); connect(m_usefilter, SIGNAL(toggled(bool)), m_edit, SLOT(setEnabled(bool))); connect(m_usefilter, SIGNAL(toggled(bool)), m_shortinfo, SLOT(setEnabled(bool))); connect(m_usefilter, SIGNAL(toggled(bool)), SLOT(slotXmlCommandToggled(bool))); m_usefilter->setChecked(true); m_usefilter->setChecked(false); // setFocusProxy(m_line); setTabOrder(m_usefilter, m_cmd); setTabOrder(m_cmd, m_add); setTabOrder(m_add, m_edit); QHBoxLayout *l1 = new QHBoxLayout(0, 0, 10); l0->addLayout(l1); l1->addWidget(m_line); l1->addWidget(m_browse); KSeparator *sep = new KSeparator(Qt::Horizontal, this); l0->addWidget(sep); } else setFocusProxy(m_cmd); QGridLayout *l2 = new QGridLayout(0, 2, (m_usefilter ? 3 : 2), 0, 5); int c(0); l0->addLayout(l2); if(m_usefilter) { l2->addWidget(m_usefilter, 0, c++); } l2->addWidget(m_cmd, 0, c); QHBoxLayout *l4 = new QHBoxLayout(0, 0, 5); l2->addLayout(l4, 1, c); l4->addWidget(m_helpbtn, 0); l4->addWidget(m_shortinfo, 1); QHBoxLayout *l3 = new QHBoxLayout(0, 0, 0); l2->addLayout(l3, 0, c + 1); l3->addWidget(m_add); l3->addWidget(m_edit); if(dlg) connect(this, SIGNAL(commandValid(bool)), dlg, SLOT(enableButtonOK(bool))); loadCommands(); }
void Module::addCommand( KUndo2Command *cmd ) { slotAddCommand( cmd ); }