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.
152 lines
5.5 KiB
152 lines
5.5 KiB
/***************************************************************************
|
|
eventconfigurationdlg.cpp - description
|
|
-------------------
|
|
begin : Mon Jul 12 2004
|
|
copyright : (C) 2004 Andras Mantia <amantia@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; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
//qt includes
|
|
#include <tqdom.h>
|
|
|
|
//kde includes
|
|
#include <kcombobox.h>
|
|
#include <kdialogbase.h>
|
|
#include <tdelistview.h>
|
|
#include <tdelocale.h>
|
|
#include <tdemessagebox.h>
|
|
|
|
//app includes
|
|
#include "eventconfigurationdlg.h"
|
|
#include "eventeditordlg.h"
|
|
#include "qpevents.h"
|
|
|
|
EventConfigurationDlg::EventConfigurationDlg(TDEActionCollection *actionCollection, TQWidget* parent, const char* name, WFlags fl)
|
|
: EventConfigurationDlgS(parent,name,fl)
|
|
{
|
|
m_actionCollection = actionCollection;
|
|
}
|
|
|
|
EventConfigurationDlg::~EventConfigurationDlg()
|
|
{
|
|
}
|
|
|
|
void EventConfigurationDlg::initEvents(EventActions *events)
|
|
{
|
|
TQListViewItem *item;
|
|
for (EventActions::ConstIterator it = events->constBegin(); it != events->constEnd(); ++it)
|
|
{
|
|
TQValueList<EventAction> evList = it.data();
|
|
for (TQValueList<EventAction>::ConstIterator it2 = evList.constBegin(); it2 != evList.constEnd(); ++it2)
|
|
{
|
|
EventAction ev = *it2;
|
|
item = new TQListViewItem(eventsListView, QPEvents::ref()->fullEventName(it.key()), QPEvents::ref()->fullActionName(ev.action));
|
|
int argcount = ev.arguments.count();
|
|
if (argcount > 0)
|
|
item->setText(2, ev.arguments[0]);
|
|
if (argcount > 1)
|
|
item->setText(3, ev.arguments[1]);
|
|
if (argcount > 2)
|
|
item->setText(4, ev.arguments[2]);
|
|
if (argcount > 3)
|
|
item->setText(5, ev.arguments[3]);
|
|
}
|
|
}
|
|
}
|
|
|
|
void EventConfigurationDlg::saveEvents(TQDomDocument dom)
|
|
{
|
|
TQDomNode projectNode = dom.firstChild().firstChild();
|
|
TQDomNode eventsNode = projectNode.namedItem("events");
|
|
projectNode.removeChild(eventsNode);
|
|
eventsNode = dom.createElement("events");
|
|
projectNode.appendChild(eventsNode);
|
|
TQDomElement node;
|
|
TQListViewItemIterator it(eventsListView);
|
|
TQListViewItem *item;
|
|
while (it.current())
|
|
{
|
|
item = it.current();
|
|
node = dom.createElement("event");
|
|
eventsNode.appendChild(node);
|
|
TQDomElement el = node.toElement();
|
|
el.setAttribute("name", QPEvents::ref()->eventName(item->text(0)));
|
|
el.setAttribute("action", QPEvents::ref()->actionName(item->text(1)));
|
|
if (el.attribute("action") == "script" || el.attribute("action") == "action")
|
|
el.setAttribute("type", "external");
|
|
else
|
|
el.setAttribute("type", "internal");
|
|
for (uint i = 2; i < 6; i++)
|
|
{
|
|
TQString s = item->text(i);
|
|
if (s.isEmpty())
|
|
s = "--not set--";
|
|
TQDomNode argNode = dom.createElement("argument");
|
|
node.appendChild(argNode);
|
|
argNode.appendChild(dom.createTextNode(s));
|
|
}
|
|
++it;
|
|
}
|
|
}
|
|
|
|
void EventConfigurationDlg::slotAddEvent()
|
|
{
|
|
KDialogBase editDlg(this, "add_event", true, i18n("New Event"), KDialogBase::Ok | KDialogBase::Cancel);
|
|
EventEditorDlg eventDlg(m_actionCollection, &editDlg);
|
|
editDlg.setMainWidget(&eventDlg);
|
|
if (editDlg.exec())
|
|
{
|
|
TQListViewItem *item = new TQListViewItem(eventsListView);
|
|
item->setText(0, eventDlg.eventCombo->currentText());
|
|
item->setText(1, eventDlg.actionCombo->currentText());
|
|
item->setText(2, eventDlg.argument1());
|
|
item->setText(3, eventDlg.argument2());
|
|
item->setText(4, eventDlg.argument3());
|
|
item->setText(5, eventDlg.argument4());
|
|
}
|
|
}
|
|
|
|
void EventConfigurationDlg::slotEditEvent()
|
|
{
|
|
TQListViewItem *item = eventsListView->currentItem();
|
|
if (!item) return;
|
|
KDialogBase editDlg(this, "edit_event", true, i18n("Edit Event"), KDialogBase::Ok | KDialogBase::Cancel);
|
|
EventEditorDlg eventDlg(m_actionCollection, &editDlg);
|
|
editDlg.setMainWidget(&eventDlg);
|
|
eventDlg.setEvent(item->text(0));
|
|
eventDlg.setAction(item->text(1));
|
|
TQStringList arguments;
|
|
arguments << item->text(2) << item->text(3) << item->text(4) << item->text(5);
|
|
eventDlg.setArguments(arguments);
|
|
if (editDlg.exec())
|
|
{
|
|
item->setText(0, eventDlg.eventCombo->currentText());
|
|
item->setText(1, eventDlg.actionCombo->currentText());
|
|
item->setText(2, eventDlg.argument1());
|
|
item->setText(3, eventDlg.argument2());
|
|
item->setText(4, eventDlg.argument3());
|
|
item->setText(5, eventDlg.argument4());
|
|
}
|
|
}
|
|
|
|
void EventConfigurationDlg::slotDeleteEvent()
|
|
{
|
|
TQListViewItem *item = eventsListView->currentItem();
|
|
if (!item) return;
|
|
if (KMessageBox::warningContinueCancel(this, i18n("<qt>Are you sure that you want to remove the configuration of the <b>%1</b> event?</qt>").arg(item->text(0)), i18n("Delete Event Configuration"),KStdGuiItem::del()) == KMessageBox::Continue)
|
|
{
|
|
delete item;
|
|
}
|
|
}
|
|
|
|
#include "eventconfigurationdlg.moc"
|
|
|