Mercurial > bellaciao
diff layout_builder.cpp @ 8:c63d67895cbe
layout designer: first draft
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 24 Aug 2011 20:38:55 +0200 |
parents | |
children | 0d7875c26974 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/layout_builder.cpp Wed Aug 24 20:38:55 2011 +0200 @@ -0,0 +1,72 @@ +/* +Bellaciao: a Salut à Toi frontend +Copyright (C) 2011 Jérôme Poisson (goffi@goffi.org) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "layout_builder.h" + + +LayoutBuilder::LayoutBuilder(QWidget* parent) + : QWidget(parent) +{ + setupUi(this); + LayoutWidgetModel* model = new LayoutWidgetModel(this); + widgetsList->setModel(model); +} + +LayoutBuilder::~LayoutBuilder() +{ + qDebug() << "Destructeur de LayoutBuilder"; +} + +const QHash<QString, LayoutWidget*>& LayoutBuilder::getLayoutWidgetsDict() +{ + return dynamic_cast<LayoutWidgetModel*>(widgetsList->model())->getLayoutWidgetsDict(); +} + +void LayoutBuilder::addWidget(LayoutWidget* widget) +{ + dynamic_cast<LayoutWidgetModel*>(widgetsList->model())->append(widget); +} + +LayoutBuilderContactList::LayoutBuilderContactList(QWidget* parent) + : LayoutBuilder(parent) +{ + qDebug() << "constructeur de LayoutBuilderContactList"; + addWidget(new LayoutWidget("List")); + addWidget(new LayoutWidget("Box")); + layoutView->setLayoutWidgets(getLayoutWidgetsDict()); +} + +LayoutBuilderContactList::~LayoutBuilderContactList() +{ + qDebug() << "Destructeur de LayoutBuilderContactList"; +} + +LayoutBuilder* LayoutBuilderFactory::Create(LayoutType type, QWidget* parent) +{ + switch (type) { + case CONTACT_LIST: + return new LayoutBuilderContactList(parent); + break; + case CONTACT_ITEM: + break; + default: + qCritical() << "Unknwon LayoutBuilder type"; + } + + return 0; +}