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.
tdelibs/kate/part/katedialogs.h

407 lines
8.3 KiB

/* This file is part of the KDE libraries
Copyright (C) 2002, 2003 Anders Lund <anders.lund@lund.tdcadsl.dk>
Copyright (C) 2003 Christoph Cullmann <cullmann@kde.org>
Copyright (C) 2001 Joseph Wenninger <jowenn@kde.org>
Based on work of:
Copyright (C) 1999 Jochen Wilhelmy <digisnap@cs.tu-berlin.de>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
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 __KATE_DIALOGS_H__
#define __KATE_DIALOGS_H__
#include "katehighlight.h"
#include "kateattribute.h"
#include "../interfaces/document.h"
#include <klistview.h>
#include <kdialogbase.h>
#include <kmimetype.h>
#include <tqstringlist.h>
#include <tqcolor.h>
#include <tqintdict.h>
#include <tqvbox.h>
#include <tqtabwidget.h>
class KatePartPluginListItem;
struct syntaxContextData;
class KateDocument;
class KateView;
namespace KIO
{
class Job;
class TransferJob;
}
class KAccel;
class KColorButton;
class KComboBox;
class KIntNumInput;
class KKeyButton;
class KKeyChooser;
class KMainWindow;
class KPushButton;
class KRegExpDialog;
class KIntNumInput;
class TQButtonGroup;
class TQCheckBox;
class TQHBoxLayout;
class TQLabel;
class TQLineEdit;
class TQPushButton;
class TQRadioButton;
class TQSpinBox;
class TQListBoxItem;
class TQWidgetStack;
class TQVBox;
class TQListViewItem;
class TQCheckBox;
class KateConfigPage : public Kate::ConfigPage
{
Q_OBJECT
public:
KateConfigPage ( TQWidget *parent=0, const char *name=0 );
virtual ~KateConfigPage ();
public:
bool changed () { return m_changed; }
private slots:
void somethingHasChanged ();
protected:
bool m_changed;
};
class KateGotoLineDialog : public KDialogBase
{
Q_OBJECT
public:
KateGotoLineDialog(TQWidget *parent, int line, int max);
int getLine();
protected:
KIntNumInput *e1;
TQPushButton *btnOK;
};
class KateIndentConfigTab : public KateConfigPage
{
Q_OBJECT
public:
KateIndentConfigTab(TQWidget *parent);
protected slots:
void somethingToggled();
void indenterSelected (int);
protected:
enum { numFlags = 8 };
static const int flags[numFlags];
TQCheckBox *opt[numFlags];
KIntNumInput *indentationWidth;
TQButtonGroup *m_tabs;
KComboBox *m_indentMode;
TQPushButton *m_configPage;
public slots:
void configPage();
void apply ();
void reload ();
void reset () {};
void defaults () {};
};
class KateSelectConfigTab : public KateConfigPage
{
Q_OBJECT
public:
KateSelectConfigTab(TQWidget *parent);
protected:
enum { numFlags = 2 };
static const int flags[numFlags];
TQCheckBox *opt[numFlags];
TQButtonGroup *m_tabs;
KIntNumInput *e4;
TQCheckBox *e6;
public slots:
void apply ();
void reload ();
void reset () {};
void defaults () {};
};
class KateEditConfigTab : public KateConfigPage
{
Q_OBJECT
public:
KateEditConfigTab(TQWidget *parent);
protected:
enum { numFlags = 5 };
static const int flags[numFlags];
TQCheckBox *opt[numFlags];
KIntNumInput *e1;
KIntNumInput *e2;
KIntNumInput *e3;
KComboBox *e5;
TQCheckBox *m_wwmarker;
public slots:
void apply ();
void reload ();
void reset () {};
void defaults () {};
};
class KateViewDefaultsConfig : public KateConfigPage
{
Q_OBJECT
public:
KateViewDefaultsConfig( TQWidget *parent );
~KateViewDefaultsConfig();
private:
TQCheckBox *m_line;
TQCheckBox *m_folding;
TQCheckBox *m_collapseTopLevel;
TQCheckBox *m_icons;
TQCheckBox *m_scrollBarMarks;
TQCheckBox *m_dynwrap;
TQCheckBox *m_showIndentLines;
KIntNumInput *m_dynwrapAlignLevel;
TQLabel *m_dynwrapIndicatorsLabel;
KComboBox *m_dynwrapIndicatorsCombo;
TQButtonGroup *m_bmSort;
public slots:
void apply ();
void reload ();
void reset ();
void defaults ();
};
class KateEditKeyConfiguration: public KateConfigPage
{
Q_OBJECT
public:
KateEditKeyConfiguration( TQWidget* parent, KateDocument* doc );
public slots:
void apply();
void reload() {};
void reset() {};
void defaults() {};
protected:
void showEvent ( TQShowEvent * );
private:
bool m_ready;
class KateDocument *m_doc;
KKeyChooser* m_keyChooser;
class KActionCollection *m_ac;
};
class KateSaveConfigTab : public KateConfigPage
{
Q_OBJECT
public:
KateSaveConfigTab( TQWidget *parent );
public slots:
void apply();
void reload();
void reset();
void defaults();
protected:
KComboBox *m_encoding, *m_eol;
TQCheckBox *cbLocalFiles, *cbRemoteFiles;
TQCheckBox *replaceTabs, *removeSpaces, *allowEolDetection;
TQLineEdit *leBuPrefix;
TQLineEdit *leBuSuffix;
KIntNumInput *dirSearchDepth;
class TQSpinBox *blockCount;
class TQLabel *blockCountLabel;
};
class KatePartPluginListItem;
class KatePartPluginListView : public KListView
{
Q_OBJECT
friend class KatePartPluginListItem;
public:
KatePartPluginListView (TQWidget *parent = 0, const char *name = 0);
signals:
void stateChange(KatePartPluginListItem *, bool);
private:
void stateChanged(KatePartPluginListItem *, bool);
};
class TQListViewItem;
class KatePartPluginConfigPage : public KateConfigPage
{
Q_OBJECT
public:
KatePartPluginConfigPage (TQWidget *parent);
~KatePartPluginConfigPage ();
public slots:
void apply ();
void reload () {};
void reset () {};
void defaults () {};
private slots:
void slotCurrentChanged( TQListViewItem * );
void slotConfigure();
void slotStateChanged( KatePartPluginListItem *, bool );
private:
KatePartPluginListView *listView;
TQPtrList<KatePartPluginListItem> m_items;
class TQPushButton *btnConfigure;
};
class KateHlConfigPage : public KateConfigPage
{
Q_OBJECT
public:
KateHlConfigPage (TQWidget *parent, KateDocument *doc);
~KateHlConfigPage ();
public slots:
void apply ();
void reload ();
void reset () {};
void defaults () {};
protected slots:
void hlChanged(int);
void hlDownload();
void showMTDlg();
private:
void writeback ();
TQComboBox *hlCombo;
TQLineEdit *wildcards;
TQLineEdit *mimetypes;
class KIntNumInput *priority;
class TQLabel *author, *license;
TQIntDict<KateHlData> hlDataDict;
KateHlData *hlData;
KateDocument *m_doc;
};
class KateHlDownloadDialog: public KDialogBase
{
Q_OBJECT
public:
KateHlDownloadDialog(TQWidget *parent, const char *name, bool modal);
~KateHlDownloadDialog();
private:
class TQListView *list;
class TQString listData;
KIO::TransferJob *transferJob;
private slots:
void listDataReceived(KIO::Job *, const TQByteArray &data);
public slots:
void slotUser1();
};
class KProcIO;
class KProcess;
/**
* This dialog will prompt the user for what do with a file that is
* modified on disk.
* If the file wasn't deleted, it has a 'diff' button, which will create
* a diff file (uing diff(1)) and launch that using KRun.
*/
class KateModOnHdPrompt : public KDialogBase
{
Q_OBJECT
public:
enum Status {
Reload=1, // 0 is KDialogBase::Cancel
Save,
Overwrite,
Ignore
};
KateModOnHdPrompt( KateDocument *doc, int modtype, const TQString &reason, TQWidget *parent );
~KateModOnHdPrompt();
public slots:
/**
* Show a diff between the document text and the disk file.
* This will not close the dialog, since we still need a
* decision from the user.
*/
void slotDiff();
void slotOk();
void slotApply();
void slotUser1();
private slots:
void slotPRead(KProcIO*); ///< Read from the diff process
void slotPDone(KProcess*); ///< Runs the diff file when done
private:
KateDocument *m_doc;
int m_modtype;
class KTempFile *m_tmpfile; ///< The diff file. Deleted by KRun when the viewer is exited.
};
#endif