//***************************************************************************
/*
* TOra - An Oracle Toolkit for DBA's and developers
* Copyright (C) 2003 Quest Software, Inc
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; only version 2 of
* the License is valid for this program.
*
* 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* As a special exception, you have permission to link this program
* with the Oracle Client libraries and distribute executables, as long
* as you follow the requirements of the GNU GPL in regard to all of the
* software in the executable aside from Oracle client libraries.
*
* Specifically you are not permitted to link this program with the
* Qt/UNIX, Qt/Windows or Qt Non Commercial products of TrollTech.
* And you are not permitted to distribute binaries compiled against
* these libraries without written consent from Quest Software, Inc.
* Observe that this does not disallow linking to the Qt Free Edition.
*
* All trademarks belong to their respective owners.
*
****************************************************************************/
#ifndef TOMEMOEDITOR_H
#define TOMEMOEDITOR_H
#include <qdialog.h>
class QCheckBox;
class QLabel;
class QListViewItem;
class QToolBar;
class toListView;
class toMarkedText;
class toResultContentEditor;
/** Displays an text in a widget which can optionally be modified and saved back.
*/
class toMemoEditor : public QDialog {
Q_OBJECT
/** Editor of widget
*/
toMarkedText *Editor;
/** Row of this field
*/
int Row;
/** Column of this field
*/
int Col;
QToolBar *Toolbar;
QLabel *Label;
QCheckBox *Null;
toListView *listView(void);
private slots:
void openFile(void);
void saveFile(void);
protected:
QToolBar *toolbar()
{ return Toolbar; }
toMarkedText *editor()
{ return Editor; }
QLabel *label()
{ return Label; }
public:
/** Create this editor. If row and col is specified, editing is posible.
* @param parent Parent widget.
* @param data Data of editor.
* @param row Optional location specifier, pass on in @ref changeData call.
* @param col Optional location specifier, pass on in @ref changeData call.
* @param sql Use SQL syntax highlighting of widget.
* @param modal Display in modal dialog
* @param navigation Display navigation buttons
*/
toMemoEditor(QWidget *parent,const QString &data,int row=-1,int col=-1,
bool sql=false,bool modal=false,bool navigation=false);
/** Get editor text.
* @return String of editor.
*/
QString text(void);
/** Current row being edited.
*/
int row() const
{ return Row; }
/** Current column being edited.
*/
int column() const
{ return Col; }
signals:
/** Emitted when data is to be stored back to the creator
* @param row Pass on from creation.
* @param col Pass on from creation.
* @param data New data to save.
*/
void changeData(int row,int col,const QString &data);
public slots:
/** Save changes and close.
*/
virtual void store(void);
/** Goto first column.
*/
virtual void firstColumn();
/** Goto next column.
*/
virtual void nextColumn();
/** Goto previous column.
*/
virtual void previousColumn();
/** Goto last column.
*/
virtual void lastColumn();
/** Change position in whatever it is your displaying.
*/
virtual void changePosition(int row,int cols);
/** Change value of editor.
*/
virtual void setText(const QString &);
private slots:
void changeCurrent(QListViewItem *item);
virtual void null(bool);
};
#endif