summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qkeysequence.h
blob: f2d9df5f1e23d3e3a7e6ebe0595744733947cbeb (plain)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
// Copyright (C) 2016 The Qt Company Ltd.// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only#ifndef QKEYSEQUENCE_H#define QKEYSEQUENCE_H#include <QtGui/qtguiglobal.h>#include <QtCore/qstring.h>#include <QtCore/qobjectdefs.h>QT_REQUIRE_CONFIG(shortcut); QT_BEGIN_NAMESPACE class QKeySequence;/***************************************************************************** QKeySequence stream functions *****************************************************************************/#if !defined(QT_NO_DATASTREAM) || defined(Q_QDOC) Q_GUI_EXPORT QDataStream &operator<<(QDataStream &in,const QKeySequence &ks); Q_GUI_EXPORT QDataStream &operator>>(QDataStream &out, QKeySequence &ks);#endif#if defined(Q_QDOC)voidqt_set_sequence_auto_mnemonic(bool b);#endifclass QVariant;class QKeySequencePrivate; Q_GUI_EXPORT Q_DECL_PURE_FUNCTION size_tqHash(const QKeySequence &key,size_t seed =0) noexcept;class Q_GUI_EXPORT QKeySequence { Q_GADGET public:enum StandardKey { UnknownKey, HelpContents, WhatsThis, Open, Close, Save, New, Delete, Cut, Copy, Paste, Undo, Redo, Back, Forward, Refresh, ZoomIn, ZoomOut, Print, AddTab, NextChild, PreviousChild, Find, FindNext, FindPrevious, Replace, SelectAll, Bold, Italic, Underline, MoveToNextChar, MoveToPreviousChar, MoveToNextWord, MoveToPreviousWord, MoveToNextLine, MoveToPreviousLine, MoveToNextPage, MoveToPreviousPage, MoveToStartOfLine, MoveToEndOfLine, MoveToStartOfBlock, MoveToEndOfBlock, MoveToStartOfDocument, MoveToEndOfDocument, SelectNextChar, SelectPreviousChar, SelectNextWord, SelectPreviousWord, SelectNextLine, SelectPreviousLine, SelectNextPage, SelectPreviousPage, SelectStartOfLine, SelectEndOfLine, SelectStartOfBlock, SelectEndOfBlock, SelectStartOfDocument, SelectEndOfDocument, DeleteStartOfWord, DeleteEndOfWord, DeleteEndOfLine, InsertParagraphSeparator, InsertLineSeparator, SaveAs, Preferences, Quit, FullScreen, Deselect, DeleteCompleteLine, Backspace, Cancel };Q_ENUM(StandardKey)enum SequenceFormat { NativeText, PortableText };Q_ENUM(SequenceFormat)QKeySequence();QKeySequence(const QString &key, SequenceFormat format = NativeText);QKeySequence(int k1,int k2 =0,int k3 =0,int k4 =0);QKeySequence(QKeyCombination k1, QKeyCombination k2 =QKeyCombination::fromCombined(0), QKeyCombination k3 =QKeyCombination::fromCombined(0), QKeyCombination k4 =QKeyCombination::fromCombined(0));QKeySequence(const QKeySequence &ks);QKeySequence(StandardKey key);~QKeySequence();intcount()const;boolisEmpty()const;enum SequenceMatch { NoMatch, PartialMatch, ExactMatch };Q_ENUM(SequenceMatch) QString toString(SequenceFormat format = PortableText)const;static QKeySequence fromString(const QString &str, SequenceFormat format = PortableText);static QList<QKeySequence>listFromString(const QString &str, SequenceFormat format = PortableText);static QString listToString(const QList<QKeySequence> &list, SequenceFormat format = PortableText); SequenceMatch matches(const QKeySequence &seq)const;static QKeySequence mnemonic(const QString &text);static QList<QKeySequence>keyBindings(StandardKey key);operatorQVariant()const; QKeyCombination operator[](uint i)const; QKeySequence &operator=(const QKeySequence &other);QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QKeySequence)voidswap(QKeySequence &other) noexcept {qt_ptr_swap(d, other.d); }booloperator==(const QKeySequence &other)const;inlinebooloperator!= (const QKeySequence &other)const{return!(*this== other); }booloperator< (const QKeySequence &ks)const;inlinebooloperator> (const QKeySequence &other)const{return other < *this; }inlinebooloperator<= (const QKeySequence &other)const{return!(other < *this); }inlinebooloperator>= (const QKeySequence &other)const{return!(*this< other); }boolisDetached()const;private:intassign(const QString &str);intassign(const QString &str, SequenceFormat format);voidsetKey(QKeyCombination key,int index); QKeySequencePrivate *d;friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &in,const QKeySequence &ks);friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &in, QKeySequence &ks);friend Q_GUI_EXPORT size_tqHash(const QKeySequence &key,size_t seed) noexcept;friend class QShortcutMap;friend class QShortcut;public:typedef QKeySequencePrivate * DataPtr;inline DataPtr &data_ptr() {return d; }};Q_DECLARE_SHARED(QKeySequence)#if !defined(QT_NO_DEBUG_STREAM) || defined(Q_QDOC) Q_GUI_EXPORT QDebug operator<<(QDebug,const QKeySequence &);#endif QT_END_NAMESPACE #endif// QKEYSEQUENCE_H
close