Files
leocad/qt/lc_qpreferencesdialog.h
Leonardo Zide a638e267cc Style fixes.
2026-04-29 20:59:17 -07:00

120 lines
3.0 KiB
C++

#pragma once
#include "lc_application.h"
#include "lc_shortcuts.h"
#include "lc_category.h"
struct lcPreferencesDialogOptions
{
lcPreferences Preferences;
QString LibraryPath;
QString ColorConfigPath;
QString MinifigSettingsPath;
QString POVRayPath;
QString LGEOPath;
QString DefaultAuthor;
QString Language;
int CheckForUpdates;
int AASamples;
lcStudStyle StudStyle;
std::vector<lcLibraryCategory> Categories;
bool CategoriesModified;
bool CategoriesDefault;
lcKeyboardShortcuts KeyboardShortcuts;
bool KeyboardShortcutsModified;
bool KeyboardShortcutsDefault;
lcMouseShortcuts MouseShortcuts;
bool MouseShortcutsModified;
bool MouseShortcutsDefault;
};
namespace Ui
{
class lcPreferencesDialog;
}
class lcPreferencesDialog : public QDialog
{
Q_OBJECT
public:
lcPreferencesDialog(QWidget* Parent, lcPreferencesDialogOptions* Options);
~lcPreferencesDialog();
lcPreferencesDialogOptions* mOptions;
enum
{
CategoryRole = Qt::UserRole
};
bool eventFilter(QObject* Object, QEvent* Event) override;
public slots:
void accept() override;
private slots:
void PartsLibraryBrowseClicked();
void PartsArchiveBrowseClicked();
void ColorConfigBrowseButtonClicked();
void MinifigSettingsBrowseButtonClicked();
void PovrayExecutableBrowseClicked();
void LgeoPathBrowseClicked();
void ColorThemeCurrentIndexChanged(int Index);
void ColorButtonClicked();
void AutomateEdgeColor();
void AutomateEdgeColorToggled();
void BlenderAddonSettingsButtonClicked();
void StudStyleComboCurrentIndexChanged(int index);
void AntiAliasingToggled();
void EdgeLinesToggled();
void ConditionalLinesCheckBoxToggled();
void LineWidthSliderValueChanged();
void MeshLODSliderValueChanged();
void FadeStepsToggled();
void HighlightNewPartsToggled();
void GridStudsToggled();
void GridLinesToggled();
void ViewSphereSizeComboCurrentIndexChanged(int Index);
void PreviewViewSphereSizeComboCurrentIndexChanged(int Index);
void updateParts();
void CategoriesDropped(const QModelIndex& Parent, int First, int Last);
void NewCategoryClicked();
void EditCategoryClicked();
void DeleteCategoryClicked();
void ImportCategoriesClicked();
void ExportCategoriesClicked();
void ResetCategoriesClicked();
void ShortcutAssignClicked();
void ShortcutRemoveClicked();
void ShortcutsImportClicked();
void ShortcutsExportClicked();
void ShortcutsResetClicked();
void commandChanged(QTreeWidgetItem *current);
void KeyboardFilterEditTextEdited(const QString& Text);
void MouseAssignClicked();
void MouseRemoveClicked();
void MouseImportButtonClicked();
void MouseExportButtonClicked();
void MouseResetClicked();
void MouseTreeItemChanged(QTreeWidgetItem* Current);
private:
Ui::lcPreferencesDialog* ui;
void updateCategories();
void updateCommandList();
void UpdateMouseTree();
void UpdateMouseTreeItem(int ItemIndex);
void setShortcutModified(QTreeWidgetItem *treeItem, bool modified);
float mLineWidthRange[2];
float mLineWidthGranularity;
static constexpr float mMeshLODMultiplier = 25.0f;
};