forked from qt-creator/qt-creator
		
	CppTools: Move ProjectPart in its own header file
Also extracting inline HeaderPath class and change projects list in vector because the size is larger than a pointer. Change-Id: I885fdff3fe9bccc877634d1615249755f5b674fd Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
This commit is contained in:
		
							
								
								
									
										87
									
								
								src/plugins/cpptools/projectpartheaderpath.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								src/plugins/cpptools/projectpartheaderpath.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,87 @@
 | 
			
		||||
/****************************************************************************
 | 
			
		||||
**
 | 
			
		||||
** Copyright (C) 2015 The Qt Company Ltd.
 | 
			
		||||
** Contact: http://www.qt.io/licensing
 | 
			
		||||
**
 | 
			
		||||
** This file is part of Qt Creator.
 | 
			
		||||
**
 | 
			
		||||
** Commercial License Usage
 | 
			
		||||
** Licensees holding valid commercial Qt licenses may use this file in
 | 
			
		||||
** accordance with the commercial license agreement provided with the
 | 
			
		||||
** Software or, alternatively, in accordance with the terms contained in
 | 
			
		||||
** a written agreement between you and The Qt Company.  For licensing terms and
 | 
			
		||||
** conditions see http://www.qt.io/terms-conditions.  For further information
 | 
			
		||||
** use the contact form at http://www.qt.io/contact-us.
 | 
			
		||||
**
 | 
			
		||||
** 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 or version 3 as published by the Free
 | 
			
		||||
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
 | 
			
		||||
** LICENSE.LGPLv3 included in the packaging of this file.  Please review the
 | 
			
		||||
** following information to ensure the GNU Lesser General Public License
 | 
			
		||||
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
 | 
			
		||||
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 | 
			
		||||
**
 | 
			
		||||
** In addition, as a special exception, The Qt Company gives you certain additional
 | 
			
		||||
** rights.  These rights are described in The Qt Company LGPL Exception
 | 
			
		||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 | 
			
		||||
**
 | 
			
		||||
****************************************************************************/
 | 
			
		||||
 | 
			
		||||
#ifndef PROJECTPARTHEADERPATH_H
 | 
			
		||||
#define PROJECTPARTHEADERPATH_H
 | 
			
		||||
 | 
			
		||||
#include <QVector>
 | 
			
		||||
 | 
			
		||||
namespace CppTools {
 | 
			
		||||
 | 
			
		||||
struct ProjectPartHeaderPath {
 | 
			
		||||
    enum Type {
 | 
			
		||||
        InvalidPath,
 | 
			
		||||
        IncludePath,
 | 
			
		||||
        FrameworkPath
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    QString path;
 | 
			
		||||
    Type type;
 | 
			
		||||
 | 
			
		||||
    ProjectPartHeaderPath()
 | 
			
		||||
        : type(InvalidPath)
 | 
			
		||||
    {}
 | 
			
		||||
 | 
			
		||||
    ProjectPartHeaderPath(const QString &path, Type type)
 | 
			
		||||
        : path(path),
 | 
			
		||||
          type(type)
 | 
			
		||||
    {}
 | 
			
		||||
 | 
			
		||||
    bool isValid() const
 | 
			
		||||
    {
 | 
			
		||||
        return type != InvalidPath;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    bool isFrameworkPath() const
 | 
			
		||||
    {
 | 
			
		||||
        return type == FrameworkPath;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    bool operator==(const ProjectPartHeaderPath &other) const
 | 
			
		||||
    {
 | 
			
		||||
        return path == other.path
 | 
			
		||||
            && type == other.type;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    bool operator!=(const ProjectPartHeaderPath &other) const
 | 
			
		||||
    {
 | 
			
		||||
        return !(*this == other);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
using ProjectPartHeaderPaths = QVector<ProjectPartHeaderPath>;
 | 
			
		||||
 | 
			
		||||
inline uint qHash(const ProjectPartHeaderPath &key, uint seed = 0)
 | 
			
		||||
{
 | 
			
		||||
    return ((qHash(key.path) << 2) | key.type) ^ seed;
 | 
			
		||||
}
 | 
			
		||||
} // namespace CppTools
 | 
			
		||||
#endif // PROJECTPARTHEADERPATH_H
 | 
			
		||||
		Reference in New Issue
	
	Block a user