You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdeadmin/ksysv/ServiceDlg.cpp

124 lines
2.9 KiB

/***************************************************************************
begin : Sun Oct 3 1999
copyright : (C) 1999 by Peter Putzer
email : putzer@kde.org
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; version 2. *
* *
***************************************************************************/
#include <tqlayout.h>
#include <tqlabel.h>
#include <tqfileinfo.h>
#include <tqcombobox.h>
#include <tqstring.h>
#include <kapplication.h>
#include <klocale.h>
#include <kbuttonbox.h>
#include "ksvdraglist.h"
#include "ServiceDlg.h"
#define MIN_SIZE(A) A->setMinimumSize(A->sizeHint())
ServiceDlg::ServiceDlg (const TQString& action, const TQString& label,
TQWidget* parent, const char* name)
: KDialogBase (parent, name, false, action, Apply|Close, Apply, true)
{
TQWidget* page = new TQWidget (this);
TQBoxLayout* top = new TQVBoxLayout (page, 0, spacingHint());
mServices = new TQComboBox (false, page);
TQLabel* desc = new TQLabel(label, page);
MIN_SIZE(desc);
desc->setBuddy(mServices);
MIN_SIZE(mServices);
mServices->setMinimumWidth(mServices->minimumSize().width() * 2);
TQBoxLayout* serv_layout = new TQHBoxLayout();
top->addLayout (serv_layout);
serv_layout->addWidget(desc);
serv_layout->addWidget(mServices);
setFixedSize (sizeHint());
}
ServiceDlg::~ServiceDlg()
{
}
void ServiceDlg::slotApply()
{
emit doAction (mMapServices[mServices->currentText()]->filenameAndPath());
}
int ServiceDlg::count() const
{
return mServices->count();
}
void ServiceDlg::resetChooser(KSVDragList* list, bool edit)
{
mServices->clear();
mMapServices.clear();
if (!list)
return;
// initialize the combobox
for (TQListViewItemIterator it (list);
it.current();
++it)
{
const KSVItem* item = static_cast<KSVItem*> (it.current());
TQFileInfo info (item->filenameAndPath());
if (edit)
{
if (info.isReadable())
mServices->insertItem(item->label());
mMapServices[item->label()] = item;
}
else
{
if (info.isExecutable())
mServices->insertItem(item->label());
mMapServices[item->label()] = item;
}
}
}
void ServiceDlg::show ()
{
TQDialog::show ();
emit display (true);
}
void ServiceDlg::hide ()
{
TQDialog::hide ();
emit display (false);
}
void ServiceDlg::toggle ()
{
if (isHidden())
show();
else
hide();
}
#include "ServiceDlg.moc"