X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Finputwidget.h;h=5fa419307df1bd847e4543778c8e511c03237ac2;hp=165c312efebb6ee71888aff10bd432ca826c6d27;hb=f04db2cb802b1296ca739c823495930c71d3b4ab;hpb=25e93f53be9b25f376c4f782f5e77d8e59b6cf10 diff --git a/src/qtui/inputwidget.h b/src/qtui/inputwidget.h index 165c312e..5fa41930 100644 --- a/src/qtui/inputwidget.h +++ b/src/qtui/inputwidget.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2010 by the Quassel Project * + * Copyright (C) 2005-2013 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,7 +15,7 @@ * 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. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #ifndef INPUTWIDGET_H @@ -32,74 +32,90 @@ class MultiLineEdit; -class InputWidget : public AbstractItemView { - Q_OBJECT +class InputWidget : public AbstractItemView +{ + Q_OBJECT public: - InputWidget(QWidget *parent = 0); - virtual ~InputWidget(); + InputWidget(QWidget *parent = 0); + virtual ~InputWidget(); - const Network *currentNetwork() const; + const Network *currentNetwork() const; - inline MultiLineEdit* inputLine() const { return ui.inputEdit; } + inline MultiLineEdit *inputLine() const { return ui.inputEdit; } protected: - virtual bool eventFilter(QObject *watched, QEvent *event); + virtual bool eventFilter(QObject *watched, QEvent *event); protected slots: - virtual void currentChanged(const QModelIndex ¤t, const QModelIndex &previous); - virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end); - virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); + virtual void currentChanged(const QModelIndex ¤t, const QModelIndex &previous); + virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end); + virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); private slots: - void setCustomFont(const QVariant &font); - void setUseCustomFont(const QVariant &); - void setEnableSpellCheck(const QVariant &); - void setShowNickSelector(const QVariant &); - void setShowStyleButtons(const QVariant &); - void setMaxLines(const QVariant &); - void setMultiLineEnabled(const QVariant &); - void setScrollBarsEnabled(const QVariant &); - void on_inputEdit_textEntered(const QString &text); - void changeNick(const QString &newNick) const; - - void setNetwork(NetworkId networkId); - void setIdentity(IdentityId identityId); - void connectMyIrcUser(); - void updateNickSelector() const; - void updateEnabledState(); - - BufferInfo currentBufferInfo() const; - - void currentCharFormatChanged(const QTextCharFormat &format); - void on_showStyleButton_toggled(bool checked); - void on_boldButton_clicked(bool checked); - void on_italicButton_clicked(bool checked); - void on_underlineButton_clicked(bool checked); - void colorChosen(QAction *action); - void colorHighlightChosen(QAction *action); + void setCustomFont(const QVariant &font); + void setUseCustomFont(const QVariant &); + void setEnableSpellCheck(const QVariant &); + void setEnableEmacsMode(const QVariant &); + void setShowNickSelector(const QVariant &); + void setShowStyleButtons(const QVariant &); + void setEnablePerChatHistory(const QVariant &); + void setMaxLines(const QVariant &); + void setMultiLineEnabled(const QVariant &); + void setScrollBarsEnabled(const QVariant &); + void onTextEntered(const QString &text); + void changeNick(const QString &newNick) const; + + void setNetwork(NetworkId networkId); + void setIdentity(IdentityId identityId); + void connectMyIrcUser(); + void updateNickSelector() const; + void updateEnabledState(); + + BufferInfo currentBufferInfo() const; + + void currentCharFormatChanged(const QTextCharFormat &format); + void on_showStyleButton_toggled(bool checked); + void on_boldButton_clicked(bool checked); + void on_italicButton_clicked(bool checked); + void on_underlineButton_clicked(bool checked); + void colorChosen(QAction *action); + void colorHighlightChosen(QAction *action); private: - Ui::InputWidget ui; - - NetworkId _networkId; - IdentityId _identityId; - QMenu *_colorMenu, *_colorFillMenu; - - void mergeFormatOnSelection(const QTextCharFormat &format); - void fontChanged(const QFont &f); - QIcon createColorToolButtonIcon(const QIcon &icon, const QColor &color); - QTextCharFormat getFormatOfWordOrSelection(); - void setFormatOnSelection(const QTextCharFormat &format); + Ui::InputWidget ui; + + NetworkId _networkId; + IdentityId _identityId; + QMenu *_colorMenu, *_colorFillMenu; + + void mergeFormatOnSelection(const QTextCharFormat &format); + void fontChanged(const QFont &f); + QIcon createColorToolButtonIcon(const QIcon &icon, const QColor &color); + QTextCharFormat getFormatOfWordOrSelection(); + void setFormatOnSelection(const QTextCharFormat &format); + + bool _perChatHistory; + struct HistoryState { + QStringList history; + QHash tempHistory; + qint32 idx; + QString inputLine; + inline HistoryState() : idx(0) {}; + }; + + QMap historyMap; }; -class MouseWheelFilter : public QObject { - Q_OBJECT +class MouseWheelFilter : public QObject +{ + Q_OBJECT public: - MouseWheelFilter(QObject *parent = 0); - virtual bool eventFilter(QObject *obj, QEvent *event); + MouseWheelFilter(QObject *parent = 0); + virtual bool eventFilter(QObject *obj, QEvent *event); }; + #endif // INPUTWIDGET_H