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.
koffice/kexi/main/startup/KexiStartupDialogTemplatesP...

158 lines
4.6 KiB

/* This file is part of the KDE project
Copyright (C) 2003-2007 Jaroslaw Staniek <js@iidea.pl>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#include "KexiStartupDialogTemplatesPage.h"
#include <core/kexi.h>
#include <core/kexitemplateloader.h>
#include "KexiProjectSelector.h"
#include "KexiOpenExistingFile.h"
#include "KexiConnSelector.h"
#include "KexiConnSelectorBase.h"
#include <tqheader.h>
#include <kdebug.h>
#include <kiconloader.h>
#ifdef KEXI_SHOW_UNIMPLEMENTED
#define KEXI_STARTUP_SHOW_TEMPLATES
#define KEXI_STARTUP_SHOW_RECENT
#endif
/*TQPixmap createIcon()
{
}*/
/*TQString createText(const TQString& name, const TQString& description)
{
TQString txt = "<H2>" + name + "</H2>";
if (description.isEmpty())
return name + description
}*/
//! @internal
class TemplateItem : public KListViewItem
{
public:
TemplateItem(TQListView* parent, const TQString& aFilename,
const TQString& name, const TQString& description, const TQPixmap& icon,
const TQValueList<KexiProjectData::ObjectInfo>& aAutoopenObjects)
: KListViewItem(parent, name + "\n" + description)
, autoopenObjects(aAutoopenObjects)
, filename(aFilename)
{
setPixmap(0, icon);
}
~TemplateItem() {}
TQValueList<KexiProjectData::ObjectInfo> autoopenObjects;
TQString filename;
};
//-----------------------
KexiStartupDialogTemplatesPage::KexiStartupDialogTemplatesPage( TQWidget * parent )
: KListView(parent, "KexiStartupDialogTemplatesPage")
, m_popuplated(false)
{
addColumn(TQString());
header()->hide();
setColumnWidthMode(0, Maximum);
setResizeMode(LastColumn);
setItemMargin(6);
connect(this,TQT_SIGNAL(executed(TQListViewItem*)), this, TQT_SLOT(slotExecuted(TQListViewItem*)));
}
KexiStartupDialogTemplatesPage::~KexiStartupDialogTemplatesPage()
{
}
void KexiStartupDialogTemplatesPage::populate()
{
if (m_popuplated)
return;
m_popuplated = true;
KexiTemplateInfo::List list = KexiTemplateLoader::loadListInfo();
foreach( TQValueList<KexiTemplateInfo>::ConstIterator, it, list ) {
new TemplateItem(this, (*it).filename, (*it).name,
(*it).description, (*it).icon, (*it).autoopenObjects);
}
if (firstChild())
setSelected(firstChild(), true);
// templates = new KIconView(this, "templates");
// templates->setItemsMovable(false);
// templates->setShowToolTips(false);
// info = new KTextBrowser(this,"info");
// setResizeMode(templates,KeepSize);
// setResizeMode(info,KeepSize);
// connect(templates,TQT_SIGNAL(selectionChanged(TQIconViewItem*)),this,TQT_SLOT(itemClicked(TQIconViewItem*)));
}
/*
void TemplatesPage::addItem(const TQString& key, const TQString& name,
const TQString& description, const TQPixmap& icon)
{
TemplateItem *item = new TemplateItem(templates, name, icon);
item->key=key;
item->name=name;
item->description=description;
}
void TemplatesPage::itemClicked(TQIconViewItem *item) {
if (!item) {
info->setText("");
return;
}
TQString t = TQString("<h2>%1</h2><p>%2</p>")
.arg(static_cast<TemplateItem*>(item)->name)
.arg(static_cast<TemplateItem*>(item)->description);
#ifndef DB_TEMPLATES
t += TQString("<p>") + i18n("We are sorry, templates are not yet available.") +"</p>";
#endif
info->setText( t );
}*/
TQString KexiStartupDialogTemplatesPage::selectedFileName() const
{
TemplateItem* templateItem = static_cast<TemplateItem*>(selectedItem());
return templateItem ? templateItem->filename : TQString();
}
TQValueList<KexiProjectData::ObjectInfo>
KexiStartupDialogTemplatesPage::autoopenObjectsForSelectedTemplate() const
{
TemplateItem* templateItem = static_cast<TemplateItem*>(selectedItem());
return templateItem ? templateItem->autoopenObjects : TQValueList<KexiProjectData::ObjectInfo>();
}
void KexiStartupDialogTemplatesPage::slotExecuted(TQListViewItem* item)
{
TemplateItem* templateItem = static_cast<TemplateItem*>(item);
if (!templateItem)
return;
emit selected(templateItem->filename);
}
#include "KexiStartupDialogTemplatesPage.moc"