-
Thorbjørn Lindeijer authored
It was a bit confusing, since it reversed the order of the lines. When this would be fixed, the added value of this action is very small, since you can then also simply move your cursor one up before joining the lines.
Thorbjørn Lindeijer authoredIt was a bit confusing, since it reversed the order of the lines. When this would be fixed, the added value of this action is very small, since you can then also simply move your cursor one up before joining the lines.
texteditoractionhandler.h 4.85 KiB
/**************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** Commercial Usage
**
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Nokia.
**
** GNU Lesser General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** If you are unsure which license is appropriate for your use, please
** contact the sales department at http://qt.nokia.com/contact.
**
**************************************************************************/
#ifndef TEXTEDITORACTIONHANDLER_H
#define TEXTEDITORACTIONHANDLER_H
#include "texteditor_global.h"
#include "basetexteditor.h"
#include "coreplugin/icontext.h"
#include <QtCore/QList>
#include <QtCore/QObject>
#include <QtCore/QPointer>
namespace TextEditor {
class BaseTextEditor;
// Redirects slots from global actions to the respective editor.
class TEXTEDITOR_EXPORT TextEditorActionHandler : public QObject
{
Q_OBJECT
public:
enum OptionalActionsMask {
None = 0,
Format = 1,
UnCommentSelection = 2,
UnCollapseAll = 4
};
TextEditorActionHandler(const QString &context, uint optionalActions = None);
void setupActions(BaseTextEditor *editor);
void initializeActions();
public slots:
void updateActions();
void updateRedoAction();
void updateUndoAction();
void updateCopyAction();
protected:
const QPointer<BaseTextEditor> ¤tEditor() const;
QAction *registerNewAction(const QString &id, const QString &title = QString());
QAction *registerNewAction(const QString &id, QObject *receiver, const char *slot,
const QString &title = QString());
enum UpdateMode { ReadOnlyMode, WriteMode };
UpdateMode updateMode() const;
virtual void createActions();
virtual bool supportsAction(const QString &id) const;
virtual void updateActions(UpdateMode um);
private slots:
void undoAction();
void redoAction();
void copyAction();
void cutAction();
void pasteAction();
void selectAllAction();
void gotoAction();
void printAction();
void formatAction();
void rewrapParagraphAction();
void setVisualizeWhitespace(bool);
void cleanWhitespace();
void setTextWrapping(bool);
void unCommentSelection();
void unCollapseAll();
void collapse();
void expand();
void cutLine();
void deleteLine();
void selectEncoding();
void increaseFontSize();
void decreaseFontSize();
void resetFontSize();
void gotoBlockStart();
void gotoBlockEnd();
void gotoBlockStartWithSelection();
void gotoBlockEndWithSelection();
void selectBlockUp();
void selectBlockDown();
void moveLineUp();
void moveLineDown();
void copyLineUp();
void copyLineDown();
void joinLines();
void updateCurrentEditor(Core::IEditor *editor);
private:
QAction *m_undoAction;
QAction *m_redoAction;
QAction *m_copyAction;
QAction *m_cutAction;
QAction *m_pasteAction;
QAction *m_selectAllAction;
QAction *m_gotoAction;
QAction *m_printAction;
QAction *m_formatAction;
QAction *m_rewrapParagraphAction;
QAction *m_visualizeWhitespaceAction;
QAction *m_cleanWhitespaceAction;
QAction *m_textWrappingAction;
QAction *m_unCommentSelectionAction;
QAction *m_unCollapseAllAction;
QAction *m_collapseAction;
QAction *m_expandAction;
QAction *m_cutLineAction;
QAction *m_deleteLineAction;
QAction *m_selectEncodingAction;
QAction *m_increaseFontSizeAction;
QAction *m_decreaseFontSizeAction;
QAction *m_resetFontSizeAction;
QAction *m_gotoBlockStartAction;
QAction *m_gotoBlockEndAction;
QAction *m_gotoBlockStartWithSelectionAction;
QAction *m_gotoBlockEndWithSelectionAction;
QAction *m_selectBlockUpAction;
QAction *m_selectBlockDownAction;
QAction *m_moveLineUpAction;
QAction *m_moveLineDownAction;
QAction *m_copyLineUpAction;
QAction *m_copyLineDownAction;
QAction *m_joinLinesAction;
uint m_optionalActions;
QPointer<BaseTextEditor> m_currentEditor;
QList<int> m_contextId;
bool m_initialized;
};
} // namespace TextEditor
#endif // TEXTEDITORACTIONHANDLER_H