[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/lib/kofficecore
From: Peter Simonsson <psn () linux ! se>
Date: 2005-11-19 15:39:21
Message-ID: 1132414761.053781.345.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 481571 by psn:
* Use a custom widget instead of kjanuswidget
* add a separator between recent docs and templates
M +1 -1 Makefile.am
M +64 -32 koOpenPane.cc
M +11 -3 koOpenPane.h
A koOpenPaneBase.ui
--- trunk/koffice/lib/kofficecore/Makefile.am #481570:481571
@@ -29,7 +29,7 @@
KoMainWindowIface.cc KoMainWindowIface.skel kofficeversion.cc koOasisStyles.cc \
koStyleStack.cc koGenStyles.cpp koOasisSettings.cc koPageLayout.cpp \
kofiledialog.cpp koxmlns.cpp kodom.cpp koversiondialog.cc koOasisStore.cpp \
- kkbdaccessextensions.cpp koDetailsPaneBase.ui koOpenPane.cc \
+ kkbdaccessextensions.cpp koDetailsPaneBase.ui koOpenPaneBase.ui koOpenPane.cc \
koTemplates.cc koDetailsPane.cc
libkofficecore_la_LDFLAGS = $(all_libraries) -version-info 3:0:0 -no-undefined
--- trunk/koffice/lib/kofficecore/koOpenPane.cc #481570:481571
@@ -21,16 +21,17 @@
#include <qvbox.h>
#include <qlayout.h>
+#include <qheader.h>
+#include <qwidgetstack.h>
+#include <qlabel.h>
-#include <kjanuswidget.h>
#include <klocale.h>
-#include <kdeversion.h>
#include <kfiledialog.h>
#include <kinstance.h>
#include <kpushbutton.h>
#include <kiconloader.h>
#include <kdebug.h>
-#include <kdialog.h>
+#include <klistview.h>
#include "koFilterManager.h"
#include "koTemplates.h"
@@ -51,66 +52,97 @@
};
KoOpenPane::KoOpenPane(QWidget *parent, KInstance* instance, const QString& \
templateType)
- : QWidget(parent, "OpenPane")
+ : KoOpenPaneBase(parent, "OpenPane")
{
d = new KoOpenPanePrivate;
d->m_instance = instance;
- QVBoxLayout* layout = new QVBoxLayout(this, KDialog::marginHint(), \
KDialog::spacingHint());
- layout->setAutoAdd(true);
- d->m_mainWidget = new KJanusWidget(this,"OpenPane", KJanusWidget::TreeList);
+ m_sectionList->header()->hide();
+ m_sectionList->setSorting(-1); // Disable sorting
+ connect(m_sectionList, SIGNAL(selectionChanged(QListViewItem*)),
+ this, SLOT(selectionChanged(QListViewItem*)));
KGuiItem openExistingGItem(i18n("Open Existing Document"), "fileopen");
- d->m_mainWidget->addButtonBelowList(openExistingGItem, this, \
SLOT(showOpenFileDialog()));
- d->m_mainWidget->setRootIsDecorated(false);
- d->m_mainWidget->setShowIconsInTreeList(true);
+ m_openExistingButton->setGuiItem(openExistingGItem);
+ connect(m_openExistingButton, SIGNAL(clicked()), this, \
SLOT(showOpenFileDialog()));
- QVBox* page = d->m_mainWidget->addVBoxPage(i18n("Recent Documents"), i18n("Recent \
Documents"),
- SmallIcon("fileopen", KIcon::SizeLarge,
- KIcon::DefaultState, instance));
- KoRecentDocumentsPane* recentDocPane = new KoRecentDocumentsPane(page, instance);
+ initRecentDocs();
+
+ QListViewItem* separator = new QListViewItem(m_sectionList, \
m_sectionList->lastItem(), ""); + separator->setEnabled(false);
+
+ initTemplates(templateType);
+
+ m_sectionList->setSelected(m_sectionList->firstChild(), true);
+}
+
+KoOpenPane::~KoOpenPane()
+{
+ delete d;
+}
+
+void KoOpenPane::showOpenFileDialog()
+{
+ const QStringList mimeFilter = \
KoFilterManager::mimeFilter(KoDocument::readNativeFormatMimeType(), + \
KoFilterManager::Import, + KoDocument::readExtraNativeMimeTypes());
+
+ KURL url = KFileDialog::getOpenURL(":OpenDialog", mimeFilter.join(" "), this);
+
+ emit openExistingFile(url.path());
+}
+
+void KoOpenPane::initRecentDocs()
+{
+ KoRecentDocumentsPane* recentDocPane = new KoRecentDocumentsPane(this, \
d->m_instance); connect(recentDocPane, SIGNAL(openFile(const QString&)), this, \
SIGNAL(openExistingFile(const QString&))); + addPane(i18n("Recent Documents"), \
"fileopen", recentDocPane); +}
- //kdDebug() << "Template type: " << templateType << endl;
-
+void KoOpenPane::initTemplates(const QString& templateType)
+{
if(!templateType.isEmpty())
{
- KoTemplateTree templateTree(templateType.local8Bit(), instance, true);
+ KoTemplateTree templateTree(templateType.local8Bit(), d->m_instance, true);
for (KoTemplateGroup *group = templateTree.first(); group != 0L; group = \
templateTree.next()) { if (group->isHidden()) {
continue;
}
- page = d->m_mainWidget->addVBoxPage(group->name(), group->name(),
- group->first()->loadPicture(instance));
- KoTemplatesPane* pane = new KoTemplatesPane(page, instance, group);
+ KoTemplatesPane* pane = new KoTemplatesPane(this, d->m_instance, group);
connect(pane, SIGNAL(openTemplate(const QString&)), this, \
SIGNAL(openTemplate(const QString&))); + addPane(group->name(), \
group->first()->loadPicture(d->m_instance), pane); }
}
}
-KoOpenPane::~KoOpenPane()
+void KoOpenPane::addPane(const QString& title, const QString& icon, QWidget* widget)
{
- delete d;
+ addPane(title, SmallIcon(icon, KIcon::SizeLarge, KIcon::DefaultState, \
d->m_instance), widget); }
-void KoOpenPane::showOpenFileDialog()
+void KoOpenPane::addPane(const QString& title, const QPixmap& icon, QWidget* widget)
{
- const QStringList mimeFilter = \
KoFilterManager::mimeFilter(KoDocument::readNativeFormatMimeType(),
- KoFilterManager::Import,
- KoDocument::readExtraNativeMimeTypes());
+ if(!widget) {
+ return;
+ }
- KURL url = KFileDialog::getOpenURL(":OpenDialog", mimeFilter.join(" "), this);
+ KListViewItem* listItem = new KListViewItem(m_sectionList, \
m_sectionList->lastItem(), title);
- emit openExistingFile(url.path());
+ if(!icon.isNull()) {
+ listItem->setPixmap(0, icon);
+ }
+
+ int id = m_widgetStack->addWidget(widget);
+ listItem->setText(1, QString::number(id));
}
-void KoOpenPane::addCustomDocumentPane(const QString& title, const QString& icon, \
QWidget* widget) +void KoOpenPane::selectionChanged(QListViewItem* item)
{
- QVBox* page = d->m_mainWidget->addVBoxPage(title, title, SmallIcon(icon,
- 48, KIcon::DefaultState, \
d->m_instance));
- widget->reparent(page, QPoint(0, 0));
+ m_headerLabel->setText(item->text(0));
+ m_widgetStack->raiseWidget(item->text(1).toInt());
}
+
#include "koOpenPane.moc"
--- trunk/koffice/lib/kofficecore/koOpenPane.h #481570:481571
@@ -19,15 +19,16 @@
#ifndef KOOPENPANE_H
#define KOOPENPANE_H
-#include <qwidget.h>
+#include <koOpenPaneBase.h>
class KoCustomDocumentCreator;
class KConfig;
class KoTemplateGroup;
class KoOpenPanePrivate;
class KInstance;
+class QPixmap;
-class KoOpenPane : public QWidget
+class KoOpenPane : public KoOpenPaneBase
{
Q_OBJECT
@@ -35,15 +36,22 @@
KoOpenPane(QWidget *parent, KInstance* instance, const QString& templateType = \
QString::null); virtual ~KoOpenPane();
- void addCustomDocumentPane(const QString& title, const QString& icon, QWidget* \
widget); + void addPane(const QString& title, const QString& icon, QWidget* \
widget); + void addPane(const QString& title, const QPixmap& icon, QWidget* \
widget);
protected slots:
void showOpenFileDialog();
+ void selectionChanged(QListViewItem* item);
+
signals:
void openExistingFile(const QString&);
void openTemplate(const QString&);
+ protected:
+ void initRecentDocs();
+ void initTemplates(const QString& templateType);
+
private:
KoOpenPanePrivate* d;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic