From 37333bf25ad9a4c538250f5af2f9f1d666362883 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeadmin@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- ksysv/Properties.cpp | 209 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 209 insertions(+) create mode 100644 ksysv/Properties.cpp (limited to 'ksysv/Properties.cpp') diff --git a/ksysv/Properties.cpp b/ksysv/Properties.cpp new file mode 100644 index 0000000..7379b74 --- /dev/null +++ b/ksysv/Properties.cpp @@ -0,0 +1,209 @@ +// (c) 2000 Peter Putzer + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "SpinBox.h" +#include "OldView.h" +#include "ksv_conf.h" +#include "ksv_core.h" +#include "Data.h" +#include "Properties.h" + +KSVServicePropertiesDialog::KSVServicePropertiesDialog (KSVData& data, QWidget* parent) + : KPropertiesDialog (KURL(data.filenameAndPath()), + parent, "KSVServicePropertiesDialog", true, false), + mData (data) +{ + KSVServicesPage* page = new KSVServicesPage (data, this); + insertPlugin (page); + + showPage (page->pageIndex ()); +} + +KSVServicePropertiesDialog::~KSVServicePropertiesDialog () +{ +} + +KSVServicesPage::KSVServicesPage (KSVData& data, KPropertiesDialog* props) + : KPropsDlgPlugin (props), + mData (data), + mPage (props->addVBoxPage (i18n("&Service"))), + mIndex (props->pageIndex (mPage)) +{ + mPage->setSpacing (KDialog::spacingHint()); + + QVBox* desc = new QVBox (mPage); + desc->setSpacing (1); + + QLabel* label = new QLabel(i18n("Description:"), desc); + label->setFixedHeight (label->sizeHint().height()); + + QString text; + ksv::getServiceDescription (data.filename(), text); + mDesc = new QTextView (QString("

%1

").arg (text), QString::null, desc); + + QButtonGroup* buttons = new QButtonGroup (1, Vertical, i18n ("Actions"), mPage); + QPushButton* b = new QPushButton (i18n ("&Edit"), buttons); + connect (b, SIGNAL (clicked()), props, SLOT (doEdit())); + + QFrame* spacer = new QFrame (buttons); + spacer->setMinimumWidth (KDialog::spacingHint()); + + b = new QPushButton (i18n ("&Start"), buttons); + connect (b, SIGNAL (clicked()), props, SLOT (doStart())); + + b = new QPushButton (i18n ("S&top"), buttons); + connect (b, SIGNAL (clicked()), props, SLOT (doStop())); + + b = new QPushButton (i18n ("&Restart"), buttons); + connect (b, SIGNAL (clicked()), props, SLOT (doRestart())); +} + +KSVServicesPage::~KSVServicesPage () +{ +} + +void KSVServicesPage::applyChanges () +{ +} + +void KSVServicePropertiesDialog::doEdit () +{ + emit editService (mData.filenameAndPath ()); +} + +void KSVServicePropertiesDialog::doStart () +{ + emit startService (mData.filenameAndPath ()); +} + +void KSVServicePropertiesDialog::doStop () +{ + emit stopService (mData.filenameAndPath ()); +} + +void KSVServicePropertiesDialog::doRestart () +{ + emit restartService (mData.filenameAndPath ()); +} + + +KSVEntryPropertiesDialog::KSVEntryPropertiesDialog (KSVData& data, QWidget* parent) + : KPropertiesDialog (data.label(), parent, "KSVEntryPropertiesDialog", true), + mData (data) +{ + KSVEntryPage* page1 = new KSVEntryPage (data, this); + insertPlugin (page1); + + KSVServicesPage* page2 = new KSVServicesPage (data, this); + insertPlugin (page2); +} + +KSVEntryPropertiesDialog::~KSVEntryPropertiesDialog () +{ +} + +KSVEntryPage::KSVEntryPage (KSVData& data, KPropertiesDialog* props) + : KPropsDlgPlugin (props), + mData (data), + mPage (props->addPage (i18n("&Entry"))), + mIndex (props->pageIndex (mPage)) +{ + QGridLayout* top = new QGridLayout (mPage, 4, 2, 0, KDialog::spacingHint()); + + QLabel* labelLabel = new QLabel (i18n ("&Name:"), mPage); + mLabelEdit = new KLineEdit (mPage); + mLabelEdit->setText (mData.label()); + labelLabel->setBuddy (mLabelEdit); + + QLabel* serviceLabel = new QLabel (i18n ("&Points to service:"), mPage); + mServiceEdit = new KLineEdit (mPage); + mServiceEdit->setCompletionObject (ksv::serviceCompletion(), true); + mServiceEdit->setText (mData.filename()); + serviceLabel->setBuddy (mServiceEdit); + + QLabel* numberLabel = new QLabel (i18n ("&Sorting number:"), mPage); + mNumberEdit = new KSVSpinBox (mPage); + mNumberEdit->setValue (mData.number()); + numberLabel->setBuddy (mNumberEdit); + + QLabel* iconLabel = new QLabel (mPage); + iconLabel->setPixmap (DesktopIcon ("ksysv", 48)); + + top->addWidget (labelLabel, 0, 0); + top->addWidget (mLabelEdit, 0, 1); + top->addWidget (serviceLabel, 1, 0); + top->addWidget (mServiceEdit, 1, 1); + top->addWidget (numberLabel, 2, 0); + top->addWidget (mNumberEdit, 2, 1); + top->addWidget (iconLabel, 3, 0); + + connect (mServiceEdit, SIGNAL (textChanged (const QString&)), + this, SLOT (emitChanged())); + connect (mLabelEdit, SIGNAL (textChanged (const QString&)), + this, SLOT (emitChanged())); + connect (mNumberEdit, SIGNAL (valueChanged (int)), + this, SLOT (emitChanged())); +} + +KSVEntryPage::~KSVEntryPage () +{ +} + +void KSVEntryPage::applyChanges () +{ + if (mNumberEdit->value() != mData.number()) + { + mData.setNumber (mNumberEdit->value()); + } + + if (mLabelEdit->text() != mData.label()) + { + mData.setLabel (mLabelEdit->text()); + } + + if (mServiceEdit->text() != mData.filename()) + { + mData.setFilename (mServiceEdit->text()); + ksv::serviceCompletion ()->addItem (mData.filename()); + } +} + +void KSVEntryPage::emitChanged () +{ + emit changed(); +} + +void KSVEntryPropertiesDialog::doEdit () +{ + emit editService (mData.filenameAndPath ()); +} + +void KSVEntryPropertiesDialog::doStart () +{ + emit startService (mData.filenameAndPath ()); +} + +void KSVEntryPropertiesDialog::doStop () +{ + emit stopService (mData.filenameAndPath ()); +} + +void KSVEntryPropertiesDialog::doRestart () +{ + emit restartService (mData.filenameAndPath ()); +} + +#include "Properties.moc" -- cgit v1.2.3