kdelibs/interfaces/ktexteditor/editorchooser.h
Ivailo Monev 61333c4671 generic: namespaced Qt4/Katie build fixes
most of the changes were done trought Katie's namefsck script which
convertes forward class declarations to include directives, however
other fixes here and there were needed as well as some questionable
changes to Q_DECLARE_TYPEINFO() macro calls because they most likely
have to do the namespacing themselfs (QT_BEGIN/END_NAMESPACE, and
probably will be in Katie) meaning that some of the changes may be
temporary and reverted later.

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2017-08-04 09:24:39 +00:00

173 lines
5.6 KiB
C++

/* This file is part of the KDE libraries
* Copyright (C) 2005 Joseph Wenninger <jowenn@kde.org>
*
* 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.
*/
#ifndef _EDITOR_CHOOSER_H_
#define _EDITOR_CHOOSER_H_
#include <ktexteditor/ktexteditor_export.h>
#include <ktexteditor/document.h>
#include <ktexteditor/editor.h>
#include <QtCore/QString>
#include <QtGui/QWidget>
class KConfig;
namespace KTextEditor
{
/**
* \brief Editor Component Chooser.
*
* Topics:
* - \ref chooser_intro
* - \ref chooser_gui
* - \ref chooser_editor
*
* \section chooser_intro Introduction
*
* The EditorChooser is responsible for two different tasks: It provides
* - a GUI, with which the user can choose the preferred editor part
* - a static accessor, with which the current selected editor part can be
* obtained.
*
* \section chooser_gui The GUI Editor Chooser
* The EditorChooser is a simple widget with a group box containing an
* information label and a combo box which lists all available KTextEditor
* implementations. To give the user the possibility to choose a text editor
* implementation, create an instance of this class and put it into the GUI:
* \code
* KTextEditor::EditorChooser* ec = new KTextEditor::EditorChooser(parent);
* // read the settings from the application's KConfig object
* ec->readAppSetting();
* // optionally connect the signal changed()
* // plug the widget into a layout
* layout->addWidget(ec);
* \endcode
* Later, for example when the user clicks the Apply-button:
* \code
* // save the user's choice
* ec->writeAppSetting();
* \endcode
* After this, the static accessor editor() will return the new editor part
* object. Now, either the application has to be restarted, or you need code
* that closes all current documents so that you can safely switch and use the
* new editor part. Restarting is probably much easier.
*
* \note If you do not put the EditorChooser into the GUI, the default editor
* component will be used. The default editor is configurable in KDE's
* control center in
* "KDE Components > Component Chooser > Embedded Text Editor".
*
* \section chooser_editor Accessing the Editor Part
* The call of editor() will return the currently used editor part, either the
* KDE default or the one configured with the EditorChooser's GUI
* (see \ref chooser_gui). Example:
* \code
* KTextEditor::Editor* editor = KTextEditor::EditorChooser::editor();
* \endcode
*
* \see KTextEditor::Editor
* \author Joseph Wenninger \<jowenn@kde.org\>
*/
class KTEXTEDITOR_EXPORT EditorChooser: public QWidget
{
friend class PrivateEditorChooser;
Q_OBJECT
public:
/**
* Constructor.
*
* Create an editor chooser widget.
* \param parent the parent widget
*/
EditorChooser(QWidget *parent=0);
/**
* Destructor.
*/
virtual ~EditorChooser();
/* void writeSysDefault();*/
/**
* Read the configuration from the application's config file. The group
* is handeled internally (it is called "KTEXTEDITOR:", but it is possible
* to add a string to extend the group name with \p postfix.
* \param postfix config group postfix string
* \see writeAppSetting()
*/
void readAppSetting(const QString& postfix=QString());
/**
* Write the configuration to the application's config file.
* \param postfix config group postfix string
* \see readAppSetting()
*/
void writeAppSetting(const QString& postfix=QString());
/**
* Static accessor to get the Editor instance of the currently used
* KTextEditor component.
*
* That Editor instance can be qobject-cast to specific extensions.
* If the result of the cast is not NULL, that extension is supported:
*
* \param postfix config group postfix string
* \param fallBackToKatePart if \e true, the returned Editor component
* will be a katepart if no other implementation can be found
* \return Editor controller or NULL, if no editor component could be
* found
*/
static KTextEditor::Editor *editor (const QString& postfix=QString(), bool fallBackToKatePart = true);
Q_SIGNALS:
/**
* This signal is emitted whenever the selected item in the combo box
* changed.
*/
void changed();
private:
class PrivateEditorChooser *d;
};
/*
class EditorChooserBackEnd: public ComponentChooserPlugin {
Q_OBJECT
public:
EditorChooserBackEnd(QObject *parent=0, const char *name=0);
virtual ~EditorChooserBackEnd();
virtual QWidget *widget(QWidget *);
virtual const QStringList &choices();
virtual void saveSettings();
void readAppSetting(KConfig *cfg,const QString& postfix);
void writeAppSetting(KConfig *cfg,const QString& postfix);
public Q_SLOTS:
virtual void madeChoice(int pos,const QString &choice);
};
*/
}
#endif
// kate: space-indent on; indent-width 2; replace-tabs on;