2017-07-19 23:20:32 +02:00
|
|
|
#pragma once
|
2011-09-07 23:06:51 +02:00
|
|
|
|
2020-12-24 03:16:00 +01:00
|
|
|
#include "lc_application.h"
|
|
|
|
#include "lc_shortcuts.h"
|
2014-12-04 02:47:28 +01:00
|
|
|
#include "lc_commands.h"
|
2014-12-08 08:32:39 +01:00
|
|
|
#include "lc_model.h"
|
2011-09-07 23:06:51 +02:00
|
|
|
|
2016-12-16 18:14:19 +01:00
|
|
|
class lcPartSelectionWidget;
|
2020-10-03 12:02:27 +02:00
|
|
|
class lcPreviewDockWidget;
|
2013-08-09 06:57:18 +02:00
|
|
|
class PiecePreview;
|
2015-01-26 00:04:39 +01:00
|
|
|
class lcQPartsTree;
|
2023-04-30 04:48:30 +02:00
|
|
|
class lcColorList;
|
2023-12-31 21:55:35 +01:00
|
|
|
class lcPropertiesWidget;
|
2015-03-04 21:37:09 +01:00
|
|
|
class lcTimelineWidget;
|
2020-01-04 19:48:17 +01:00
|
|
|
class lcElidedLabel;
|
2017-02-11 21:41:00 +01:00
|
|
|
#ifdef QT_NO_PRINTER
|
|
|
|
class QPrinter;
|
|
|
|
#endif
|
2011-09-07 23:06:51 +02:00
|
|
|
|
2013-08-09 06:57:18 +02:00
|
|
|
#define LC_MAX_RECENT_FILES 4
|
|
|
|
|
2019-07-01 23:11:47 +02:00
|
|
|
class lcTabBar : public QTabBar
|
|
|
|
{
|
2019-07-01 23:38:10 +02:00
|
|
|
public:
|
|
|
|
lcTabBar(QWidget* Parent = nullptr)
|
|
|
|
: QTabBar(Parent), mMousePressTab(-1)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2019-07-01 23:11:47 +02:00
|
|
|
protected:
|
2020-03-22 23:44:41 +01:00
|
|
|
void mousePressEvent(QMouseEvent* Event) override;
|
|
|
|
void mouseReleaseEvent(QMouseEvent* Event) override;
|
2019-07-01 23:38:10 +02:00
|
|
|
|
|
|
|
int mMousePressTab;
|
2019-07-01 23:11:47 +02:00
|
|
|
};
|
|
|
|
|
2016-03-06 02:47:00 +01:00
|
|
|
class lcModelTabWidget : public QWidget
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
|
|
|
lcModelTabWidget(lcModel* Model)
|
|
|
|
{
|
|
|
|
mModel = Model;
|
2017-04-14 02:26:40 +02:00
|
|
|
mActiveView = nullptr;
|
2016-03-06 02:47:00 +01:00
|
|
|
}
|
2021-02-27 19:46:10 +01:00
|
|
|
|
2017-03-26 19:28:58 +02:00
|
|
|
QWidget* GetAnyViewWidget()
|
|
|
|
{
|
|
|
|
QWidget* Widget = layout()->itemAt(0)->widget();
|
|
|
|
|
|
|
|
while (Widget->metaObject() == &QSplitter::staticMetaObject)
|
|
|
|
Widget = ((QSplitter*)Widget)->widget(0);
|
|
|
|
|
|
|
|
return Widget;
|
|
|
|
}
|
|
|
|
|
2020-12-25 19:54:33 +01:00
|
|
|
lcView* GetActiveView() const
|
2016-03-06 02:47:00 +01:00
|
|
|
{
|
|
|
|
return mActiveView;
|
|
|
|
}
|
|
|
|
|
2020-12-25 19:54:33 +01:00
|
|
|
void SetActiveView(lcView* ActiveView)
|
2016-03-06 02:47:00 +01:00
|
|
|
{
|
|
|
|
mActiveView = ActiveView;
|
|
|
|
}
|
|
|
|
|
2021-11-15 03:34:24 +01:00
|
|
|
void RemoveView(const lcView* View)
|
2016-03-06 02:47:00 +01:00
|
|
|
{
|
|
|
|
if (View == mActiveView)
|
2017-04-14 02:26:40 +02:00
|
|
|
mActiveView = nullptr;
|
2016-03-06 02:47:00 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
lcModel* GetModel() const
|
|
|
|
{
|
|
|
|
return mModel;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected:
|
|
|
|
lcModel* mModel;
|
2020-12-25 19:54:33 +01:00
|
|
|
lcView* mActiveView;
|
2016-03-06 02:47:00 +01:00
|
|
|
};
|
|
|
|
|
2015-01-26 00:04:39 +01:00
|
|
|
class lcMainWindow : public QMainWindow
|
2011-09-07 23:06:51 +02:00
|
|
|
{
|
2015-01-26 00:04:39 +01:00
|
|
|
Q_OBJECT
|
2015-01-25 02:34:13 +01:00
|
|
|
|
2014-09-21 03:31:01 +02:00
|
|
|
public:
|
2013-08-09 06:57:18 +02:00
|
|
|
lcMainWindow();
|
|
|
|
~lcMainWindow();
|
|
|
|
|
2020-12-31 01:43:23 +01:00
|
|
|
void CreateWidgets();
|
2015-01-26 00:04:39 +01:00
|
|
|
|
2014-05-23 02:02:21 +02:00
|
|
|
lcTool GetTool() const
|
|
|
|
{
|
|
|
|
return mTool;
|
|
|
|
}
|
|
|
|
|
2014-08-27 18:17:09 +02:00
|
|
|
lcTransformType GetTransformType() const
|
|
|
|
{
|
|
|
|
return mTransformType;
|
|
|
|
}
|
|
|
|
|
2014-05-21 00:15:42 +02:00
|
|
|
bool GetAddKeys() const
|
|
|
|
{
|
|
|
|
return mAddKeys;
|
|
|
|
}
|
|
|
|
|
2015-04-25 00:11:50 +02:00
|
|
|
float GetMoveXYSnap() const
|
2014-10-05 07:21:51 +02:00
|
|
|
{
|
2015-04-25 00:11:50 +02:00
|
|
|
const float SnapXYTable[] = { 0.0f, 1.0f, 5.0f, 8.0f, 10.0f, 20.0f, 40.0f, 60.0f, 80.0f, 160.0f };
|
|
|
|
return mMoveSnapEnabled ? SnapXYTable[mMoveXYSnapIndex] : 0.0f;
|
2014-10-05 07:21:51 +02:00
|
|
|
}
|
|
|
|
|
2015-04-25 00:11:50 +02:00
|
|
|
float GetMoveZSnap() const
|
2014-10-05 07:21:51 +02:00
|
|
|
{
|
2015-04-25 00:11:50 +02:00
|
|
|
const float SnapZTable[] = { 0.0f, 1.0f, 5.0f, 8.0f, 10.0f, 20.0f, 24.0f, 48.0f, 96.0f, 192.0f };
|
|
|
|
return mMoveSnapEnabled ? SnapZTable[mMoveZSnapIndex] : 0.0f;
|
2014-10-05 07:21:51 +02:00
|
|
|
}
|
|
|
|
|
2017-11-21 01:16:41 +01:00
|
|
|
float GetAngleSnap() const
|
2014-10-05 07:21:51 +02:00
|
|
|
{
|
2017-11-21 01:16:41 +01:00
|
|
|
const float AngleTable[] = { 0.0f, 1.0f, 5.0f, 15.0f, 22.5f, 30.0f, 45.0f, 60.0f, 90.0f, 180.0f };
|
2015-04-25 00:11:50 +02:00
|
|
|
return mAngleSnapEnabled ? AngleTable[mAngleSnapIndex] : 0.0f;
|
2014-10-05 07:21:51 +02:00
|
|
|
}
|
|
|
|
|
2015-04-25 00:11:50 +02:00
|
|
|
QString GetMoveXYSnapText() const
|
2014-10-05 07:21:51 +02:00
|
|
|
{
|
2015-04-25 00:11:50 +02:00
|
|
|
QString SnapXYText[] = { tr("0"), tr("1/20S"), tr("1/4S"), tr("1F"), tr("1/2S"), tr("1S"), tr("2S"), tr("3S"), tr("4S"), tr("8S") };
|
|
|
|
return mMoveSnapEnabled ? SnapXYText[mMoveXYSnapIndex] : tr("None");
|
2014-10-05 07:21:51 +02:00
|
|
|
}
|
|
|
|
|
2015-04-25 00:11:50 +02:00
|
|
|
QString GetMoveZSnapText() const
|
2014-10-05 07:21:51 +02:00
|
|
|
{
|
2015-04-25 00:11:50 +02:00
|
|
|
QString SnapZText[] = { tr("0"), tr("1/20S"), tr("1/4S"), tr("1F"), tr("1/2S"), tr("1S"), tr("1B"), tr("2B"), tr("4B"), tr("8B") };
|
|
|
|
return mMoveSnapEnabled ? SnapZText[mMoveZSnapIndex] : tr("None");
|
2014-10-05 07:21:51 +02:00
|
|
|
}
|
|
|
|
|
2015-04-25 00:11:50 +02:00
|
|
|
QString GetAngleSnapText() const
|
2014-10-05 07:21:51 +02:00
|
|
|
{
|
2015-04-25 00:11:50 +02:00
|
|
|
return mAngleSnapEnabled ? QString::number(GetAngleSnap()) : tr("None");
|
2014-10-05 07:21:51 +02:00
|
|
|
}
|
|
|
|
|
2015-01-18 06:36:14 +01:00
|
|
|
bool GetRelativeTransform() const
|
|
|
|
{
|
|
|
|
return mRelativeTransform;
|
|
|
|
}
|
|
|
|
|
2021-01-30 00:18:02 +01:00
|
|
|
bool GetSeparateTransform() const
|
2020-04-27 05:01:35 +02:00
|
|
|
{
|
|
|
|
return mLocalTransform;
|
|
|
|
}
|
|
|
|
|
2017-11-22 02:58:36 +01:00
|
|
|
lcSelectionMode GetSelectionMode() const
|
|
|
|
{
|
|
|
|
return mSelectionMode;
|
|
|
|
}
|
|
|
|
|
2016-12-16 21:52:36 +01:00
|
|
|
PieceInfo* GetCurrentPieceInfo() const
|
2016-12-16 18:14:19 +01:00
|
|
|
{
|
|
|
|
return mCurrentPieceInfo;
|
|
|
|
}
|
|
|
|
|
2020-12-25 19:54:33 +01:00
|
|
|
lcView* GetActiveView() const
|
2014-05-03 23:16:48 +02:00
|
|
|
{
|
2020-03-23 04:18:52 +01:00
|
|
|
const lcModelTabWidget* const CurrentTab = mModelTabWidget ? (lcModelTabWidget*)mModelTabWidget->currentWidget() : nullptr;
|
2017-04-14 02:26:40 +02:00
|
|
|
return CurrentTab ? CurrentTab->GetActiveView() : nullptr;
|
2014-05-03 23:16:48 +02:00
|
|
|
}
|
|
|
|
|
2018-04-17 03:29:42 +02:00
|
|
|
lcModel* GetActiveModel() const;
|
2021-02-27 20:32:52 +01:00
|
|
|
lcModelTabWidget* GetTabForView(lcView* View) const;
|
2018-04-17 03:29:42 +02:00
|
|
|
|
|
|
|
lcModel* GetCurrentTabModel() const
|
|
|
|
{
|
2020-03-23 04:18:52 +01:00
|
|
|
const lcModelTabWidget* const CurrentTab = (lcModelTabWidget*)mModelTabWidget->currentWidget();
|
2018-04-17 03:29:42 +02:00
|
|
|
return CurrentTab ? CurrentTab->GetModel() : nullptr;
|
|
|
|
}
|
|
|
|
|
2016-12-28 22:30:31 +01:00
|
|
|
lcPartSelectionWidget* GetPartSelectionWidget() const
|
|
|
|
{
|
|
|
|
return mPartSelectionWidget;
|
|
|
|
}
|
|
|
|
|
2020-10-03 12:02:27 +02:00
|
|
|
lcPreviewDockWidget* GetPreviewWidget() const
|
|
|
|
{
|
|
|
|
return mPreviewWidget;
|
|
|
|
}
|
|
|
|
|
2017-11-14 23:56:37 +01:00
|
|
|
QMenu* GetToolsMenu() const
|
|
|
|
{
|
|
|
|
return mToolsMenu;
|
|
|
|
}
|
|
|
|
|
2017-10-31 20:33:35 +01:00
|
|
|
QMenu* GetViewpointMenu() const
|
|
|
|
{
|
|
|
|
return mViewpointMenu;
|
|
|
|
}
|
|
|
|
|
2015-12-04 21:32:10 +01:00
|
|
|
QMenu* GetCameraMenu() const
|
|
|
|
{
|
|
|
|
return mCameraMenu;
|
|
|
|
}
|
|
|
|
|
2017-10-31 20:33:35 +01:00
|
|
|
QMenu* GetProjectionMenu() const
|
2015-12-04 21:32:10 +01:00
|
|
|
{
|
2017-10-31 20:33:35 +01:00
|
|
|
return mProjectionMenu;
|
|
|
|
}
|
|
|
|
|
|
|
|
QMenu* GetShadingMenu() const
|
|
|
|
{
|
|
|
|
return mShadingMenu;
|
2015-12-04 21:32:10 +01:00
|
|
|
}
|
|
|
|
|
2018-01-07 00:01:04 +01:00
|
|
|
QByteArray GetTabLayout();
|
2018-01-03 04:46:50 +01:00
|
|
|
void RestoreTabLayout(const QByteArray& TabLayout);
|
2016-03-06 02:47:00 +01:00
|
|
|
void RemoveAllModelTabs();
|
2019-01-21 01:36:59 +01:00
|
|
|
void CloseCurrentModelTab();
|
2016-03-06 02:47:00 +01:00
|
|
|
void SetCurrentModelTab(lcModel* Model);
|
2015-01-16 03:07:31 +01:00
|
|
|
void ResetCameras();
|
2020-12-25 19:54:33 +01:00
|
|
|
void AddView(lcView* View);
|
|
|
|
void RemoveView(lcView* View);
|
2014-05-03 23:16:48 +02:00
|
|
|
|
2014-05-23 02:02:21 +02:00
|
|
|
void SetTool(lcTool Tool);
|
2014-08-27 18:17:09 +02:00
|
|
|
void SetTransformType(lcTransformType TransformType);
|
2013-08-09 06:57:18 +02:00
|
|
|
void SetColorIndex(int ColorIndex);
|
2015-04-25 00:11:50 +02:00
|
|
|
void SetMoveSnapEnabled(bool Enabled);
|
|
|
|
void SetAngleSnapEnabled(bool Enabled);
|
2014-10-05 07:21:51 +02:00
|
|
|
void SetMoveXYSnapIndex(int Index);
|
|
|
|
void SetMoveZSnapIndex(int Index);
|
|
|
|
void SetAngleSnapIndex(int Index);
|
2015-01-18 06:36:14 +01:00
|
|
|
void SetRelativeTransform(bool RelativeTransform);
|
2021-01-30 00:18:02 +01:00
|
|
|
void SetSeparateTransform(bool SelectionTransform);
|
2017-09-13 23:21:53 +02:00
|
|
|
void SetShadingMode(lcShadingMode ShadingMode);
|
2017-11-22 02:58:36 +01:00
|
|
|
void SetSelectionMode(lcSelectionMode SelectionMode);
|
2020-01-05 20:38:24 +01:00
|
|
|
void ToggleViewSphere();
|
2020-09-13 19:04:34 +02:00
|
|
|
void ToggleAxisIcon();
|
2020-12-24 04:10:54 +01:00
|
|
|
void ToggleGrid();
|
2020-04-11 20:16:21 +02:00
|
|
|
void ToggleFadePreviousSteps();
|
2014-10-05 07:21:51 +02:00
|
|
|
|
2014-12-04 02:47:28 +01:00
|
|
|
void NewProject();
|
|
|
|
bool OpenProject(const QString& FileName);
|
2020-01-04 20:25:52 +01:00
|
|
|
void OpenRecentProject(int RecentFileIndex);
|
2014-12-16 00:55:17 +01:00
|
|
|
void MergeProject();
|
2017-06-26 03:20:34 +02:00
|
|
|
void ImportLDD();
|
2017-08-20 22:47:53 +02:00
|
|
|
void ImportInventory();
|
2014-12-04 02:47:28 +01:00
|
|
|
bool SaveProject(const QString& FileName);
|
|
|
|
bool SaveProjectIfModified();
|
2015-12-04 23:41:08 +01:00
|
|
|
bool SetModelFromFocus();
|
|
|
|
void SetModelFromSelection();
|
2014-12-04 02:47:28 +01:00
|
|
|
void HandleCommand(lcCommandId CommandId);
|
2013-08-09 06:57:18 +02:00
|
|
|
|
2014-10-12 19:34:18 +02:00
|
|
|
void AddRecentFile(const QString& FileName);
|
2013-08-09 06:57:18 +02:00
|
|
|
void RemoveRecentFile(int FileIndex);
|
2011-09-07 23:06:51 +02:00
|
|
|
|
2013-08-09 06:57:18 +02:00
|
|
|
void SplitHorizontal();
|
|
|
|
void SplitVertical();
|
2015-01-26 00:04:39 +01:00
|
|
|
void RemoveActiveView();
|
2013-08-09 06:57:18 +02:00
|
|
|
void ResetViews();
|
2011-09-07 23:06:51 +02:00
|
|
|
|
2013-08-09 06:57:18 +02:00
|
|
|
void TogglePrintPreview();
|
|
|
|
void ToggleFullScreen();
|
|
|
|
|
2015-12-22 23:44:46 +01:00
|
|
|
void UpdateSelectedObjects(bool SelectionChanged);
|
2015-07-05 03:04:27 +02:00
|
|
|
void UpdateTimeline(bool Clear, bool UpdateItems);
|
2013-08-09 06:57:18 +02:00
|
|
|
void UpdatePaste(bool Enabled);
|
2014-07-06 08:04:09 +02:00
|
|
|
void UpdateCurrentStep();
|
2014-05-21 00:15:42 +02:00
|
|
|
void SetAddKeys(bool AddKeys);
|
2014-10-05 07:21:51 +02:00
|
|
|
void UpdateLockSnap();
|
2013-08-09 06:57:18 +02:00
|
|
|
void UpdateSnap();
|
2015-01-17 03:02:30 +01:00
|
|
|
void UpdateColor();
|
2014-09-15 01:32:58 +02:00
|
|
|
void UpdateUndoRedo(const QString& UndoText, const QString& RedoText);
|
2017-08-25 21:57:14 +02:00
|
|
|
void UpdateShadingMode();
|
2017-11-22 02:58:36 +01:00
|
|
|
void UpdateSelectionMode();
|
2014-12-10 00:56:29 +01:00
|
|
|
void UpdateModels();
|
2024-11-15 02:28:51 +01:00
|
|
|
void UpdateInUseCategory();
|
2013-08-09 06:57:18 +02:00
|
|
|
void UpdateCategories();
|
2014-12-08 08:32:39 +01:00
|
|
|
void UpdateTitle();
|
2013-08-09 06:57:18 +02:00
|
|
|
void UpdateModified(bool Modified);
|
|
|
|
void UpdateRecentFiles();
|
|
|
|
void UpdateShortcuts();
|
|
|
|
|
|
|
|
lcVector3 GetTransformAmount();
|
|
|
|
|
2014-10-12 19:34:18 +02:00
|
|
|
QString mRecentFiles[LC_MAX_RECENT_FILES];
|
2013-08-09 06:57:18 +02:00
|
|
|
int mColorIndex;
|
2015-01-26 00:04:39 +01:00
|
|
|
QAction* mActions[LC_NUM_COMMANDS];
|
2018-01-03 04:46:50 +01:00
|
|
|
|
|
|
|
public slots:
|
|
|
|
void ProjectFileChanged(const QString& Path);
|
2021-01-05 21:32:03 +01:00
|
|
|
void PreviewPiece(const QString& PartId, int ColorCode, bool ShowPreview);
|
2020-12-18 21:15:35 +01:00
|
|
|
void TogglePreviewWidget(bool Visible);
|
2024-07-25 23:16:23 +02:00
|
|
|
void SetCurrentPieceInfo(PieceInfo* Info);
|
2014-05-03 23:16:48 +02:00
|
|
|
|
2015-01-26 00:04:39 +01:00
|
|
|
protected slots:
|
2024-02-20 02:51:34 +01:00
|
|
|
void CameraMenuAboutToShow();
|
|
|
|
void ProjectionMenuAboutToShow();
|
2020-12-16 03:27:54 +01:00
|
|
|
void ViewFocusReceived();
|
2020-07-11 21:22:01 +02:00
|
|
|
void UpdateDockWidgetActions();
|
2018-05-14 02:09:06 +02:00
|
|
|
void UpdateGamepads();
|
2018-01-07 00:22:40 +01:00
|
|
|
void ModelTabContextMenuRequested(const QPoint& Point);
|
|
|
|
void ModelTabCloseOtherTabs();
|
2016-03-06 02:47:00 +01:00
|
|
|
void ModelTabClosed(int Index);
|
|
|
|
void ModelTabChanged(int Index);
|
2015-01-26 00:04:39 +01:00
|
|
|
void ClipboardChanged();
|
|
|
|
void ActionTriggered();
|
|
|
|
void ColorChanged(int ColorIndex);
|
2024-07-26 02:56:29 +02:00
|
|
|
void PartListPicked(PieceInfo* Info);
|
2020-12-30 04:20:03 +01:00
|
|
|
void ColorButtonClicked();
|
2015-01-26 00:04:39 +01:00
|
|
|
void Print(QPrinter* Printer);
|
2020-10-03 12:02:27 +02:00
|
|
|
void EnableWindowFlags(bool);
|
2015-01-25 02:34:13 +01:00
|
|
|
|
2014-05-03 23:16:48 +02:00
|
|
|
protected:
|
2020-03-22 23:44:41 +01:00
|
|
|
void closeEvent(QCloseEvent *event) override;
|
|
|
|
void dragEnterEvent(QDragEnterEvent* Event) override;
|
|
|
|
void dropEvent(QDropEvent* Event) override;
|
|
|
|
QMenu* createPopupMenu() override;
|
2015-01-26 00:04:39 +01:00
|
|
|
|
|
|
|
void CreateActions();
|
|
|
|
void CreateMenus();
|
|
|
|
void CreateToolBars();
|
|
|
|
void CreateStatusBar();
|
2020-12-25 19:54:33 +01:00
|
|
|
lcView* CreateView(lcModel* Model);
|
|
|
|
void SetActiveView(lcView* ActiveView);
|
2020-07-11 21:22:01 +02:00
|
|
|
void ToggleDockWidget(QWidget* DockWidget);
|
2015-01-26 00:04:39 +01:00
|
|
|
void SplitView(Qt::Orientation Orientation);
|
2016-08-01 05:44:15 +02:00
|
|
|
void ShowUpdatesDialog();
|
|
|
|
void ShowAboutDialog();
|
2017-12-11 03:12:31 +01:00
|
|
|
void ShowHTMLDialog();
|
2023-05-21 11:17:00 +02:00
|
|
|
void ShowRenderDialog(int Command);
|
2020-06-01 03:46:36 +02:00
|
|
|
void ShowInstructionsDialog();
|
2015-01-26 00:04:39 +01:00
|
|
|
void ShowPrintDialog();
|
2020-10-03 12:02:27 +02:00
|
|
|
void CreatePreviewWidget();
|
2015-01-26 00:04:39 +01:00
|
|
|
|
2020-01-04 20:25:52 +01:00
|
|
|
bool OpenProjectFile(const QString& FileName);
|
|
|
|
|
2020-03-23 04:18:52 +01:00
|
|
|
lcModelTabWidget* GetTabWidgetForModel(const lcModel* Model) const
|
2016-03-06 02:47:00 +01:00
|
|
|
{
|
|
|
|
for (int TabIdx = 0; TabIdx < mModelTabWidget->count(); TabIdx++)
|
|
|
|
{
|
|
|
|
lcModelTabWidget* TabWidget = (lcModelTabWidget*)mModelTabWidget->widget(TabIdx);
|
|
|
|
|
|
|
|
if (TabWidget->GetModel() == Model)
|
|
|
|
return TabWidget;
|
|
|
|
}
|
|
|
|
|
2017-04-14 02:26:40 +02:00
|
|
|
return nullptr;
|
2016-03-06 02:47:00 +01:00
|
|
|
}
|
2014-05-21 00:15:42 +02:00
|
|
|
|
2018-05-14 02:09:06 +02:00
|
|
|
QTimer mGamepadTimer;
|
|
|
|
QDateTime mLastGamepadUpdate;
|
|
|
|
|
2014-05-21 00:15:42 +02:00
|
|
|
bool mAddKeys;
|
2014-05-23 02:02:21 +02:00
|
|
|
lcTool mTool;
|
2014-08-27 18:17:09 +02:00
|
|
|
lcTransformType mTransformType;
|
2015-04-25 00:11:50 +02:00
|
|
|
bool mMoveSnapEnabled;
|
|
|
|
bool mAngleSnapEnabled;
|
2014-10-05 07:21:51 +02:00
|
|
|
int mMoveXYSnapIndex;
|
|
|
|
int mMoveZSnapIndex;
|
|
|
|
int mAngleSnapIndex;
|
2015-01-18 06:36:14 +01:00
|
|
|
bool mRelativeTransform;
|
2020-04-27 05:01:35 +02:00
|
|
|
bool mLocalTransform;
|
2016-12-16 18:14:19 +01:00
|
|
|
PieceInfo* mCurrentPieceInfo;
|
2017-11-22 02:58:36 +01:00
|
|
|
lcSelectionMode mSelectionMode;
|
2018-01-07 00:22:40 +01:00
|
|
|
int mModelTabWidgetContextMenuIndex;
|
2015-01-26 00:04:39 +01:00
|
|
|
|
|
|
|
QAction* mActionFileRecentSeparator;
|
|
|
|
|
2021-01-08 19:35:52 +01:00
|
|
|
QTabWidget* mModelTabWidget;
|
2015-01-26 00:04:39 +01:00
|
|
|
QToolBar* mStandardToolBar;
|
|
|
|
QToolBar* mToolsToolBar;
|
|
|
|
QToolBar* mTimeToolBar;
|
2020-10-03 12:02:27 +02:00
|
|
|
QDockWidget* mPreviewToolBar;
|
2015-01-26 00:04:39 +01:00
|
|
|
QDockWidget* mPartsToolBar;
|
2016-12-20 23:11:19 +01:00
|
|
|
QDockWidget* mColorsToolBar;
|
2015-01-26 00:04:39 +01:00
|
|
|
QDockWidget* mPropertiesToolBar;
|
2015-03-04 21:37:09 +01:00
|
|
|
QDockWidget* mTimelineToolBar;
|
2015-01-26 00:04:39 +01:00
|
|
|
|
2016-12-16 18:14:19 +01:00
|
|
|
lcPartSelectionWidget* mPartSelectionWidget;
|
2023-04-30 04:48:30 +02:00
|
|
|
lcColorList* mColorList;
|
2020-12-30 04:20:03 +01:00
|
|
|
QToolButton* mColorButton;
|
2023-12-31 21:55:35 +01:00
|
|
|
lcPropertiesWidget* mPropertiesWidget;
|
2015-03-04 21:37:09 +01:00
|
|
|
lcTimelineWidget* mTimelineWidget;
|
2015-01-26 00:04:39 +01:00
|
|
|
QLineEdit* mTransformXEdit;
|
|
|
|
QLineEdit* mTransformYEdit;
|
|
|
|
QLineEdit* mTransformZEdit;
|
2020-10-03 12:02:27 +02:00
|
|
|
lcPreviewDockWidget* mPreviewWidget;
|
2015-01-26 00:04:39 +01:00
|
|
|
|
2020-01-04 19:48:17 +01:00
|
|
|
lcElidedLabel* mStatusBarLabel;
|
2015-01-26 00:04:39 +01:00
|
|
|
QLabel* mStatusPositionLabel;
|
|
|
|
QLabel* mStatusSnapLabel;
|
|
|
|
QLabel* mStatusTimeLabel;
|
2015-12-04 21:32:10 +01:00
|
|
|
|
2021-01-30 00:18:02 +01:00
|
|
|
QMenu* mTransformMenu;
|
2017-11-14 23:56:37 +01:00
|
|
|
QMenu* mToolsMenu;
|
2015-12-04 21:32:10 +01:00
|
|
|
QMenu* mViewpointMenu;
|
2017-10-31 20:33:35 +01:00
|
|
|
QMenu* mCameraMenu;
|
|
|
|
QMenu* mProjectionMenu;
|
|
|
|
QMenu* mShadingMenu;
|
2017-11-24 03:31:55 +01:00
|
|
|
QMenu* mSelectionModeMenu;
|
2011-09-07 23:06:51 +02:00
|
|
|
};
|
|
|
|
|
2013-08-09 06:57:18 +02:00
|
|
|
extern class lcMainWindow* gMainWindow;
|