* TaskBuildIndex starts seperate indexer processes and communicates via shared memory * indexer processes get restarted if they fail * indexer processes are killed when the app closes or crashes * added utility class SharedMemory to allocate and access shared memory, providing basic data structures * added SharedMemoryGarbageCollector for keeping track of running instances and cleaning up shared memory in case of a crash * show errors for source files that crashed during indexing * added basic exception handling to task scheduling * added option to turn off processes and use threads in preferences, but still use shared memory fortune cookie message = Good news from someone dear is coming soon.
85 lines
2.4 KiB
C++
85 lines
2.4 KiB
C++
#ifndef QT_PROJECT_WIZZARD_CONTENT_PREFERENCES_H
|
|
#define QT_PROJECT_WIZZARD_CONTENT_PREFERENCES_H
|
|
|
|
#include <QCheckBox>
|
|
#include <QComboBox>
|
|
#include <QLabel>
|
|
#include <QLineEdit>
|
|
|
|
#include "qt/element/QtFontPicker.h"
|
|
#include "qt/element/QtLocationPicker.h"
|
|
#include "qt/window/project_wizzard/QtProjectWizzardContent.h"
|
|
#include "utility/path_detector/CombinedPathDetector.h"
|
|
|
|
class QtProjectWizzardContentPreferences
|
|
: public QtProjectWizzardContent
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
QtProjectWizzardContentPreferences(QtProjectWizzardWindow* window);
|
|
~QtProjectWizzardContentPreferences();
|
|
|
|
// QtProjectWizzardContent implementation
|
|
virtual void populate(QGridLayout* layout, int& row) override;
|
|
|
|
virtual void load() override;
|
|
virtual void save() override;
|
|
virtual bool check() override;
|
|
|
|
private slots:
|
|
void colorSchemeChanged(int index);
|
|
void javaPathDetectionClicked();
|
|
void mavenPathDetectionClicked();
|
|
void loggingEnabledChanged();
|
|
void indexerThreadsChanges(int index);
|
|
|
|
private:
|
|
void addJavaPathDetection(QGridLayout* layout, int& row);
|
|
void addMavenPathDetection(QGridLayout* layout, int& row);
|
|
|
|
void addTitle(QString title, QGridLayout* layout, int& row);
|
|
void addLabelAndWidget(
|
|
QString label, QWidget* widget, QGridLayout* layout, int& row, Qt::Alignment widgetAlignment = Qt::Alignment());
|
|
void addGap(QGridLayout* layout, int& row);
|
|
|
|
QCheckBox* addCheckBox(QString label, QString text, QString help, QGridLayout* layout, int& row);
|
|
QComboBox* addComboBox(QString label, int min, int max, QString help, QGridLayout* layout, int& row);
|
|
QLineEdit* addLineEdit(QString label, QString help, QGridLayout* layout, int& row);
|
|
|
|
QtFontPicker* m_fontFace;
|
|
QComboBox* m_fontSize;
|
|
QComboBox* m_tabWidth;
|
|
|
|
QComboBox* m_colorSchemes;
|
|
std::vector<FilePath> m_colorSchemePaths;
|
|
int m_oldColorSchemeIndex;
|
|
int m_newColorSchemeIndex;
|
|
|
|
QCheckBox* m_useAnimations;
|
|
QCheckBox* m_loggingEnabled;
|
|
QCheckBox* m_verboseIndexerLoggingEnabled;
|
|
|
|
QLineEdit* m_scrollSpeed;
|
|
QCheckBox* m_graphZooming;
|
|
|
|
QLineEdit* m_sourcetrailPort;
|
|
QLineEdit* m_pluginPort;
|
|
|
|
QComboBox* m_threads;
|
|
QLabel* m_threadsInfoLabel;
|
|
|
|
QCheckBox* m_multiProcessIndexing;
|
|
|
|
std::shared_ptr<CombinedPathDetector> m_javaPathDetector;
|
|
std::shared_ptr<CombinedPathDetector> m_mavenPathDetector;
|
|
|
|
QComboBox* m_javaPathDetectorBox;
|
|
QComboBox* m_mavenPathDetectorBox;
|
|
QtLocationPicker* m_javaPath;
|
|
QtLocationPicker* m_mavenPath;
|
|
QLineEdit* m_jvmMaximumMemory;
|
|
};
|
|
|
|
#endif // QT_PROJECT_WIZZARD_CONTENT_PREFERENCES_H
|