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.
tdegames/kolf/editor.cpp

61 lines
1.4 KiB

#include <kdialog.h>
#include <klistbox.h>
#include <qlabel.h>
#include <qlayout.h>
#include <qwidget.h>
#include <qframe.h>
#include "editor.h"
#include "game.h"
Editor::Editor(ObjectList *list, QWidget *parent, const char *name)
: QWidget(parent, name)
{
this->list = list;
config = 0;
hlayout = new QHBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
QVBoxLayout *vlayout = new QVBoxLayout(hlayout, KDialog::spacingHint());
vlayout->addWidget(new QLabel(i18n("Add object:"), this));
listbox = new KListBox(this, "Listbox");
vlayout->addWidget(listbox);
hlayout->setStretchFactor(vlayout, 2);
QStringList items;
Object *obj = 0;
for (obj = list->first(); obj; obj = list->next())
items.append(obj->name());
listbox->insertStringList(items);
connect(listbox, SIGNAL(executed(QListBoxItem *)), SLOT(listboxExecuted(QListBoxItem *)));
}
void Editor::listboxExecuted(QListBoxItem * /*item*/)
{
int curItem = listbox->currentItem();
if (curItem < 0)
return;
emit addNewItem(list->at(curItem));
}
void Editor::setItem(CanvasItem *item)
{
delete config;
config = item->config(this);
if (!config)
return;
config->ctorDone();
hlayout->addWidget(config);
hlayout->setStretchFactor(config, 2);
config->setFrameStyle(QFrame::Box | QFrame::Raised);
config->setLineWidth(1);
config->show();
connect(config, SIGNAL(modified()), this, SIGNAL(changed()));
}
#include "editor.moc"