Files
qt-creator/src/plugins/cpptools/cpptools_utils.h
Nikolai Kosjar 38ba61ec4f CppEditor: Rework showing/switching parse configurations
* Move the combox box for switching the parse configurations out of the
  "Additional Preprocessor Directives" dialog ('#'-button) to make it
  better visible/accessible. Also, decouple the extra preprocessor
  directives from the concrete parse context since this is not anymore
  in same dialog.
* The combo box appears only if multiple parse configurations are
  available for a file.
* The first time multiple parse configurations are detected, an info bar
  is shown that points the user to the combox box. A "Do Not Show Again"
  button is provided.
* Upon selecting an entry, the preferred parse configuration is saved as
  part of the session. The setting can be cleared with the context menu
  entry on the combo box.

Follow-up changes need to ensure that the display name and/or tooltip is
unambiguous, e.g. for qbs and cmake projects.

Change-Id: I9e9773704187291524ad7b605bfdddd83ef5b19d
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-02-03 11:58:27 +00:00

63 lines
2.0 KiB
C++

/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://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 https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
****************************************************************************/
#pragma once
#include "projectpart.h"
namespace CppTools {
enum class Language { C, Cxx };
class ProjectPartInfo {
public:
enum Hint {
NoHint = 0,
IsFallbackMatch = 1 << 0,
IsAmbiguousMatch = 1 << 1,
IsPreferredMatch = 1 << 2,
IsFromProjectMatch = 1 << 3,
IsFromDependenciesMatch = 1 << 4,
};
Q_DECLARE_FLAGS(Hints, Hint)
ProjectPartInfo() = default;
ProjectPartInfo(const ProjectPart::Ptr &projectPart,
const QList<ProjectPart::Ptr> &projectParts,
Hints hints)
: projectPart(projectPart)
, projectParts(projectParts)
, hints(hints)
{
}
public:
ProjectPart::Ptr projectPart;
QList<ProjectPart::Ptr> projectParts; // The one above as first plus alternatives.
Hints hints = NoHint;
};
} // namespace CppTools