⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 proitems.h

📁 QT 开发环境里面一个很重要的文件
💻 H
字号:
/******************************************************************************** Copyright (C) 2006-2006 Trolltech ASA. All rights reserved.**** This file is part of the Qt Linguist of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifndef PROITEMS_H#define PROITEMS_H#include <QtCore/QObject>#include <QtCore/QByteArray>#include <QtCore/QList>struct AbstractProItemVisitor;class ProItem {public:    enum ProItemKind {        ValueKind,        FunctionKind,        ConditionKind,        OperatorKind,        BlockKind    };    virtual ~ProItem() {}    virtual ProItemKind kind() const = 0;    void setComment(const QByteArray &comment);    QByteArray comment() const;    virtual bool Accept(AbstractProItemVisitor *visitor) = 0;    int getLineNumber() { return m_lineNumber; }    void setLineNumber(int lineNumber) { m_lineNumber = lineNumber; }private:    QByteArray m_comment;    int m_lineNumber;};class ProBlock : public ProItem {public:    enum ProBlockKind {        NormalKind          = 0x00,        ScopeKind           = 0x01,        ScopeContentsKind   = 0x02,        VariableKind        = 0x04,        ProFileKind         = 0x08,        SingleLine          = 0x10    };    ProBlock(ProBlock *parent);    ~ProBlock();    void appendItem(ProItem *proitem);    void setItems(const QList<ProItem *> &proitems);    QList<ProItem *> items() const;    void setBlockKind(int blockKind);    int blockKind() const;    void setParent(ProBlock *parent);    ProBlock *parent() const;    ProItem::ProItemKind kind() const;    virtual bool Accept(AbstractProItemVisitor *visitor);protected:    QList<ProItem *> m_proitems;private:    ProBlock *m_parent;    int m_blockKind;};class ProVariable : public ProBlock {public:    enum VariableOperator {        AddOperator         = 0,        RemoveOperator      = 1,        ReplaceOperator     = 2,        SetOperator         = 3,        UniqueAddOperator   = 4    };    ProVariable(const QByteArray &name, ProBlock *parent);    void setVariableOperator(VariableOperator &variableKind);    VariableOperator variableOperator() const;    void setVariable(const QByteArray &name);    QByteArray variable() const;    virtual bool Accept(AbstractProItemVisitor *visitor);private:    VariableOperator m_variableKind;    QByteArray m_variable;    };class ProValue : public ProItem {public:    ProValue(const QByteArray &value, ProVariable *variable);    void setValue(const QByteArray &value);    QByteArray value() const;    void setVariable(ProVariable *variable);    ProVariable *variable() const;    ProItem::ProItemKind kind() const;    virtual bool Accept(AbstractProItemVisitor *visitor);private:    QByteArray m_value;    ProVariable *m_variable;};class ProFunction : public ProItem {public:    ProFunction(const QByteArray &text);    void setText(const QByteArray &text);    QByteArray text() const;    ProItem::ProItemKind kind() const;    virtual bool Accept(AbstractProItemVisitor *visitor);private:    QByteArray m_text;};class ProCondition : public ProItem {public:    ProCondition(const QByteArray &text);    void setText(const QByteArray &text);    QByteArray text() const;    ProItem::ProItemKind kind() const;    virtual bool Accept(AbstractProItemVisitor *visitor);private:    QByteArray m_text;};class ProOperator : public ProItem {public:    enum OperatorKind {        OrOperator      = 1,        NotOperator     = 2    };    ProOperator(OperatorKind operatorKind);    void setOperatorKind(OperatorKind operatorKind);    OperatorKind operatorKind() const;    ProItem::ProItemKind kind() const;    virtual bool Accept(AbstractProItemVisitor *visitor);private:    OperatorKind m_operatorKind;};class ProFile : public QObject, public ProBlock {    Q_OBJECTpublic:    ProFile(const QString &fileName);    ~ProFile();    QString displayFileName() const;    QString fileName() const;    void setModified(bool modified);    bool isModified() const;        virtual bool Accept(AbstractProItemVisitor *visitor);private:    QString m_fileName;    QString m_displayFileName;    bool m_modified;};#endif //PROITEMS_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -