[shaderz] r34 committed - * Added a default menu entry to material preview to allow creation of ...

1 view
Skip to first unread message

sha...@googlecode.com

unread,
Sep 29, 2010, 11:38:00 AM9/29/10
to shade...@googlegroups.com
Revision: 34
Author: vijay.michaeljoseph
Date: Wed Sep 29 08:37:00 2010
Log: * Added a default menu entry to material preview to allow creation of
material from file
* made changes to material editor dialog so that it dynamically adds the
created material's info widget.

http://code.google.com/p/shaderz/source/detail?r=34

Modified:
/trunk/include/qt/qtmaterialeditor.h
/trunk/include/qt/qtmaterialpreview.h
/trunk/include/shdefs.h
/trunk/shaderz.xcodeproj/vijayjoseph.mode1v3
/trunk/shaderz.xcodeproj/vijayjoseph.pbxuser
/trunk/src/qt/qtmaterialeditor.cpp
/trunk/src/qt/qtmaterialpreview.cpp
/trunk/src/qt/qtshaderparameterwidget.cpp

=======================================
--- /trunk/include/qt/qtmaterialeditor.h Mon Sep 27 09:06:10 2010
+++ /trunk/include/qt/qtmaterialeditor.h Wed Sep 29 08:37:00 2010
@@ -34,6 +34,7 @@

public slots:
virtual void onSelectedPreviewMaterialChanged(qtMaterialPreview*
newSelection);
+ virtual void onMaterialCreated(qtMaterialPreview* InPreviewWidget);

protected:
QGroupBox* m_pMaterialPreviewContainer;
=======================================
--- /trunk/include/qt/qtmaterialpreview.h Mon Sep 27 09:06:10 2010
+++ /trunk/include/qt/qtmaterialpreview.h Wed Sep 29 08:37:00 2010
@@ -14,9 +14,12 @@

#include <qt/qtshaderzviewwidget.h>

+class QAction;
+
namespace Shaderz
{
class shMaterial;
+ class qtMaterialInfoWidget;

/**
* This class will hold the code for displaying the material instance
preview in the material editor.
@@ -27,6 +30,10 @@

signals:
void selected(qtMaterialPreview* selectedWidget);
+ void materialCreated(qtMaterialPreview* thisWidget);
+
+ public slots:
+ virtual void onCreateMaterialFromFile();

public:
qtMaterialPreview( QWidget * pParent = 0,
@@ -35,8 +42,13 @@
WindowFlags f = 0,
std::string sSceneFilePath = ""
);
-
+ ~qtMaterialPreview();
+
+ // setters
virtual void setSelected(bool bIsSelected = true);
+
+ // getters
+ virtual qtMaterialInfoWidget* getMaterialInfoWidget() const { return
m_pMaterialInfoWidget; }

protected:
virtual void drawSelectionBox(void);
@@ -45,10 +57,16 @@

protected: // events
virtual void mousePressEvent ( QMouseEvent * e );
+ virtual void contextMenuEvent(QContextMenuEvent* InEventInfo);
virtual void paintGL();

protected:
- bool m_bIsSelected;
+ bool m_bIsSelected;
+ shMaterial* m_pMaterial;
+ qtMaterialInfoWidget* m_pMaterialInfoWidget;
+
+ // actions
+ QAction* m_pCreateMaterialFromFile;

private:
typedef qtShaderzViewWidget ParentClass;
=======================================
--- /trunk/include/shdefs.h Sun Sep 5 01:15:27 2010
+++ /trunk/include/shdefs.h Wed Sep 29 08:37:00 2010
@@ -3,8 +3,9 @@
* shaderz
*
* Created by Vijay Michael Joseph on 9/5/10.
- * EMail: vijay.mic...@gmail.com
+ * EMail: shade...@googlegroups.com
*
*/

-#define USE_QT4 1
+#define USE_QT4 1
+#define SHADERZ_DATA_PATH "../data"
=======================================
--- /trunk/shaderz.xcodeproj/vijayjoseph.mode1v3 Mon Sep 27 09:06:10 2010
+++ /trunk/shaderz.xcodeproj/vijayjoseph.mode1v3 Wed Sep 29 08:37:00 2010
@@ -202,24 +202,24 @@
<key>Content</key>
<dict>
<key>PBXProjectModuleGUID</key>
- <string>497A42F7124FC4A200FF7E76</string>
+ <string>497A42DA124FC2DC00FF7E76</string>
<key>PBXProjectModuleLabel</key>
- <string>qtmaterialeditor.cpp</string>
+ <string>qtmaterialpreview.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<dict>
<key>PBXProjectModuleGUID</key>
- <string>497A42F8124FC4A200FF7E76</string>
+ <string>497A42DB124FC2DC00FF7E76</string>
<key>PBXProjectModuleLabel</key>
- <string>qtmaterialeditor.cpp</string>
+ <string>qtmaterialpreview.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>497A431E124FCC2F00FF7E76</string>
+ <string>496A8DC7125393B000CEDA03</string>
<key>history</key>
<array>
- <string>497A4311124FC60000FF7E76</string>
+ <string>496A8DC6125393B000CEDA03</string>
</array>
</dict>
<key>SplitCount</key>
@@ -242,24 +242,24 @@
<key>Content</key>
<dict>
<key>PBXProjectModuleGUID</key>
- <string>497A42DA124FC2DC00FF7E76</string>
+ <string>497A42D7124FC2DC00FF7E76</string>
<key>PBXProjectModuleLabel</key>
- <string>qtmaterialpreview.cpp</string>
+ <string>qtmaterialpreview.h</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<dict>
<key>PBXProjectModuleGUID</key>
- <string>497A42DB124FC2DC00FF7E76</string>
+ <string>497A42D8124FC2DC00FF7E76</string>
<key>PBXProjectModuleLabel</key>
- <string>qtmaterialpreview.cpp</string>
+ <string>qtmaterialpreview.h</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>497A431F124FCC2F00FF7E76</string>
+ <string>496A8DC9125393B000CEDA03</string>
<key>history</key>
<array>
- <string>497A4309124FC58D00FF7E76</string>
+ <string>496A8DC8125393B000CEDA03</string>
</array>
</dict>
<key>SplitCount</key>
@@ -282,24 +282,24 @@
<key>Content</key>
<dict>
<key>PBXProjectModuleGUID</key>
- <string>497A42D7124FC2DC00FF7E76</string>
+ <string>496A8DCA125393B000CEDA03</string>
<key>PBXProjectModuleLabel</key>
- <string>qtmaterialpreview.h</string>
+ <string>qtmaterialeditor.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<dict>
<key>PBXProjectModuleGUID</key>
- <string>497A42D8124FC2DC00FF7E76</string>
+ <string>496A8DCB125393B000CEDA03</string>
<key>PBXProjectModuleLabel</key>
- <string>qtmaterialpreview.h</string>
+ <string>qtmaterialeditor.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>497A4320124FCC2F00FF7E76</string>
+ <string>496A8DCD125393B000CEDA03</string>
<key>history</key>
<array>
- <string>497A430B124FC58D00FF7E76</string>
+ <string>496A8DCC125393B000CEDA03</string>
</array>
</dict>
<key>SplitCount</key>
@@ -336,10 +336,10 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>497A4321124FCC2F00FF7E76</string>
+ <string>496A8DCF125393B000CEDA03</string>
<key>history</key>
<array>
- <string>497A4301124FC4C600FF7E76</string>
+ <string>496A8DCE125393B000CEDA03</string>
</array>
</dict>
<key>SplitCount</key>
@@ -358,6 +358,246 @@
<string>15 55 802 718 0 0 1280 778 </string>
</dict>
</dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>496A8DD0125393B000CEDA03</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtmaterialinfowidget.h</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>496A8DD1125393B000CEDA03</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtmaterialinfowidget.h</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>496A8DD3125393B000CEDA03</string>
+ <key>history</key>
+ <array>
+ <string>496A8DD2125393B000CEDA03</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {802, 677}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>15 55 802 718 0 0 1280 778 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>496A8DD4125393B000CEDA03</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>shmaterial.h</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>496A8DD5125393B000CEDA03</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>shmaterial.h</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>496A8DD7125393B000CEDA03</string>
+ <key>history</key>
+ <array>
+ <string>496A8DD6125393B000CEDA03</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {802, 677}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>15 55 802 718 0 0 1280 778 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>496A8DD8125393B000CEDA03</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtshaderparameterwidget.h</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>496A8DD9125393B000CEDA03</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtshaderparameterwidget.h</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>496A8DDA125393B000CEDA03</string>
+ <key>history</key>
+ <array>
+ <string>496A8DAB1253798400CEDA03</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {802, 677}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>15 55 802 718 0 0 1280 778 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>496A8DDB125393B000CEDA03</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtmaterialinfowidget.cpp</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>496A8DDC125393B000CEDA03</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtmaterialinfowidget.cpp</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>496A8DDD125393B000CEDA03</string>
+ <key>history</key>
+ <array>
+ <string>496A8DA41253790A00CEDA03</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {802, 677}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>12 60 802 718 0 0 1280 778 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>496A8DDE125393B000CEDA03</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>shdefs.h</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>496A8DDF125393B000CEDA03</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>shdefs.h</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>496A8DE0125393B000CEDA03</string>
+ <key>history</key>
+ <array>
+ <string>496A8D9C1253768E00CEDA03</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {802, 677}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>15 55 802 718 0 0 1280 778 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>496A8DE1125393B000CEDA03</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtmainwindow.cpp</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>496A8DE2125393B000CEDA03</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtmainwindow.cpp</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>496A8DE4125393B000CEDA03</string>
+ <key>history</key>
+ <array>
+ <string>496A8DE3125393B000CEDA03</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {802, 677}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>12 55 802 718 0 0 1280 778 </string>
+ </dict>
+ </dict>
</array>
<key>PerspectiveWidths</key>
<array>
@@ -442,14 +682,14 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>24</integer>
+ <integer>23</integer>
<integer>18</integer>
<integer>17</integer>
<integer>0</integer>
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
- <string>{{0, 114}, {186, 338}}</string>
+ <string>{{0, 205}, {186, 338}}</string>
</dict>
<key>PBXTopSmartGroupGIDs</key>
<array/>
@@ -549,9 +789,9 @@
</array>
<key>TableOfContents</key>
<array>
- <string>497A40E1124ECE9B00FF7E76</string>
+ <string>496A8DC4125393B000CEDA03</string>
<string>1CE0B1FE06471DED0097A5F4</string>
- <string>497A40E2124ECE9B00FF7E76</string>
+ <string>496A8DC5125393B000CEDA03</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
@@ -685,14 +925,17 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>497A42D1124FC25A00FF7E76</string>
- <string>1C530D57069F1CE1000CFCEE</string>
- <string>49E29C5A12484FE400C3B26A</string>
+ <string>496A8DE1125393B000CEDA03</string>
+ <string>496A8DDE125393B000CEDA03</string>
+ <string>496A8DDB125393B000CEDA03</string>
+ <string>496A8DD8125393B000CEDA03</string>
+ <string>496A8DD4125393B000CEDA03</string>
+ <string>496A8DD0125393B000CEDA03</string>
<string>497A42FB124FC4A200FF7E76</string>
+ <string>496A8DCA125393B000CEDA03</string>
<string>497A42D7124FC2DC00FF7E76</string>
- <string>497A42DA124FC2DC00FF7E76</string>
<string>/Users/vijayjoseph/projects/shaderz/shaderz.xcodeproj</string>
- <string>497A42F7124FC4A200FF7E76</string>
+ <string>497A42DA124FC2DC00FF7E76</string>
</array>
<key>WindowString</key>
<string>797 328 690 397 0 0 1280 778 </string>
=======================================
--- /trunk/shaderz.xcodeproj/vijayjoseph.pbxuser Mon Sep 27 09:06:10 2010
+++ /trunk/shaderz.xcodeproj/vijayjoseph.pbxuser Wed Sep 29 08:37:00 2010
@@ -2,9 +2,9 @@
{
490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1079, 6000}}";
- sepNavSelRange = "{2017, 0}";
- sepNavVisRange = "{2729, 1091}";
+ sepNavIntBoundsRect = "{{0, 0}, {1079, 5840}}";
+ sepNavSelRange = "{3227, 0}";
+ sepNavVisRange = "{2728, 1192}";
sepNavWindowFrame = "{{15, -1}, {802, 774}}";
};
};
@@ -16,6 +16,188 @@
sepNavWindowFrame = "{{15, -1}, {802, 774}}";
};
};
+ 496A8D9C1253768E00CEDA03 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 49C7DCA81232C9EF00E24C8D /* shdefs.h */;
+ };
+ 496A8DA41253790A00CEDA03 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ };
+ 496A8DAB1253798400CEDA03 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ };
+ 496A8DC6125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 497A42C9124FC15A00FF7E76 /* qtmaterialpreview.cpp */;
+ name = "qtmaterialpreview.cpp: 152";
+ rLen = 0;
+ rLoc = 4021;
+ rType = 0;
+ vrLen = 956;
+ vrLoc = 3107;
+ };
+ 496A8DC7125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 497A42C9124FC15A00FF7E76 /* qtmaterialpreview.cpp */;
+ name = "qtmaterialpreview.cpp: 62";
+ rLen = 0;
+ rLoc = 1614;
+ rType = 0;
+ vrLen = 1162;
+ vrLoc = 735;
+ };
+ 496A8DC8125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 497A42C0124FBEC200FF7E76 /* qtmaterialpreview.h */;
+ name = "qtmaterialpreview.h: 51";
+ rLen = 0;
+ rLoc = 1134;
+ rType = 0;
+ vrLen = 1041;
+ vrLoc = 724;
+ };
+ 496A8DC9125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 497A42C0124FBEC200FF7E76 /* qtmaterialpreview.h */;
+ name = "qtmaterialpreview.h: 51";
+ rLen = 0;
+ rLoc = 1134;
+ rType = 0;
+ vrLen = 1090;
+ vrLoc = 238;
+ };
+ 496A8DCC125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 497A41EA124FB2DA00FF7E76 /* qtmaterialeditor.cpp */;
+ name = "qtmaterialeditor.cpp: 116";
+ rLen = 0;
+ rLoc = 3665;
+ rType = 0;
+ vrLen = 990;
+ vrLoc = 2566;
+ };
+ 496A8DCD125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 497A41EA124FB2DA00FF7E76 /* qtmaterialeditor.cpp */;
+ name = "qtmaterialeditor.cpp: 117";
+ rLen = 0;
+ rLoc = 3526;
+ rType = 0;
+ vrLen = 1062;
+ vrLoc = 2606;
+ };
+ 496A8DCE125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 497A41E9124FA91600FF7E76 /* qtmaterialeditor.h */;
+ name = "qtmaterialeditor.h: 37";
+ rLen = 0;
+ rLoc = 778;
+ rType = 0;
+ vrLen = 893;
+ vrLoc = 138;
+ };
+ 496A8DCF125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 497A41E9124FA91600FF7E76 /* qtmaterialeditor.h */;
+ name = "qtmaterialeditor.h: 37";
+ rLen = 17;
+ rLoc = 724;
+ rType = 0;
+ vrLen = 893;
+ vrLoc = 138;
+ };
+ 496A8DD2125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE0E1239CA840043F7B1 /* qtmaterialinfowidget.h */;
+ name = "qtmaterialinfowidget.h: 20";
+ rLen = 0;
+ rLoc = 400;
+ rType = 0;
+ vrLen = 874;
+ vrLoc = 125;
+ };
+ 496A8DD3125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE0E1239CA840043F7B1 /* qtmaterialinfowidget.h */;
+ name = "qtmaterialinfowidget.h: 20";
+ rLen = 0;
+ rLoc = 400;
+ rType = 0;
+ vrLen = 874;
+ vrLoc = 125;
+ };
+ 496A8DD6125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EDFD123925F60043F7B1 /* shmaterial.h */;
+ name = "shmaterial.h: 9";
+ rLen = 0;
+ rLoc = 130;
+ rType = 0;
+ vrLen = 1125;
+ vrLoc = 20;
+ };
+ 496A8DD7125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EDFD123925F60043F7B1 /* shmaterial.h */;
+ name = "shmaterial.h: 9";
+ rLen = 0;
+ rLoc = 130;
+ rType = 0;
+ vrLen = 1125;
+ vrLoc = 20;
+ };
+ 496A8DDA125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 42";
+ rLen = 21;
+ rLoc = 1082;
+ rType = 0;
+ vrLen = 1067;
+ vrLoc = 0;
+ };
+ 496A8DDD125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 45";
+ rLen = 0;
+ rLoc = 939;
+ rType = 0;
+ vrLen = 1213;
+ vrLoc = 1062;
+ };
+ 496A8DE0125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DCA81232C9EF00E24C8D /* shdefs.h */;
+ name = "shdefs.h: 11";
+ rLen = 17;
+ rLoc = 162;
+ rType = 0;
+ vrLen = 190;
+ vrLoc = 0;
+ };
+ 496A8DE3125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 12";
+ rLen = 36;
+ rLoc = 184;
+ rType = 0;
+ vrLen = 1585;
+ vrLoc = 354;
+ };
+ 496A8DE4125393B000CEDA03 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 12";
+ rLen = 36;
+ rLoc = 184;
+ rType = 0;
+ vrLen = 1158;
+ vrLoc = 1470;
+ };
4970EDF0123925BB0043F7B1 /* shmaterial.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1016, 1696}}";
@@ -27,8 +209,8 @@
4970EDFD123925F60043F7B1 /* shmaterial.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1051, 688}}";
- sepNavSelRange = "{268, 10}";
- sepNavVisRange = "{0, 1118}";
+ sepNavSelRange = "{130, 0}";
+ sepNavVisRange = "{20, 1125}";
sepNavWindowFrame = "{{15, -1}, {802, 774}}";
};
};
@@ -42,9 +224,9 @@
};
4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1072, 1408}}";
- sepNavSelRange = "{284, 0}";
- sepNavVisRange = "{0, 884}";
+ sepNavIntBoundsRect = "{{0, 0}, {1072, 1424}}";
+ sepNavSelRange = "{939, 0}";
+ sepNavVisRange = "{1062, 1213}";
sepNavWindowFrame = "{{12, 4}, {802, 774}}";
};
};
@@ -58,116 +240,36 @@
};
497A41E9124FA91600FF7E76 /* qtmaterialeditor.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {743, 646}}";
- sepNavSelRange = "{289, 0}";
- sepNavVisRange = "{0, 532}";
+ sepNavIntBoundsRect = "{{0, 0}, {743, 816}}";
+ sepNavSelRange = "{724, 17}";
+ sepNavVisRange = "{138, 893}";
sepNavWindowFrame = "{{15, -1}, {802, 774}}";
};
};
497A41EA124FB2DA00FF7E76 /* qtmaterialeditor.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {743, 864}}";
- sepNavSelRange = "{833, 0}";
- sepNavVisRange = "{0, 1046}";
+ sepNavIntBoundsRect = "{{0, 0}, {1037, 1920}}";
+ sepNavSelRange = "{3526, 0}";
+ sepNavVisRange = "{2606, 1062}";
sepNavWindowFrame = "{{15, -1}, {802, 774}}";
};
};
497A42C0124FBEC200FF7E76 /* qtmaterialpreview.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {750, 864}}";
- sepNavSelRange = "{437, 17}";
- sepNavVisRange = "{169, 1009}";
+ sepNavIntBoundsRect = "{{0, 0}, {750, 1248}}";
+ sepNavSelRange = "{1134, 0}";
+ sepNavVisRange = "{238, 1090}";
sepNavWindowFrame = "{{15, -1}, {802, 774}}";
};
};
497A42C9124FC15A00FF7E76 /* qtmaterialpreview.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {939, 1712}}";
- sepNavSelRange = "{344, 17}";
- sepNavVisRange = "{135, 1168}";
+ sepNavIntBoundsRect = "{{0, 0}, {932, 2608}}";
+ sepNavSelRange = "{1614, 0}";
+ sepNavVisRange = "{735, 1162}";
sepNavWindowFrame = "{{15, -1}, {802, 774}}";
};
};
- 497A4301124FC4C600FF7E76 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 497A41E9124FA91600FF7E76 /* qtmaterialeditor.h */;
- name = "qtmaterialeditor.h: 27";
- rLen = 27;
- rLoc = 446;
- rType = 0;
- vrLen = 514;
- vrLoc = 0;
- };
- 497A4309124FC58D00FF7E76 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 497A42C9124FC15A00FF7E76 /* qtmaterialpreview.cpp */;
- name = "qtmaterialpreview.cpp: 20";
- rLen = 17;
- rLoc = 344;
- rType = 0;
- vrLen = 1168;
- vrLoc = 135;
- };
- 497A430B124FC58D00FF7E76 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 497A42C0124FBEC200FF7E76 /* qtmaterialpreview.h */;
- name = "qtmaterialpreview.h: 24";
- rLen = 17;
- rLoc = 437;
- rType = 0;
- vrLen = 975;
- vrLoc = 203;
- };
- 497A4311124FC60000FF7E76 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 497A41EA124FB2DA00FF7E76 /* qtmaterialeditor.cpp */;
- name = "qtmaterialeditor.cpp: 29";
- rLen = 0;
- rLoc = 1043;
- rType = 0;
- vrLen = 911;
- vrLoc = 0;
- };
- 497A431E124FCC2F00FF7E76 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 497A41EA124FB2DA00FF7E76 /* qtmaterialeditor.cpp */;
- name = "qtmaterialeditor.cpp: 33";
- rLen = 0;
- rLoc = 833;
- rType = 0;
- vrLen = 1046;
- vrLoc = 0;
- };
- 497A431F124FCC2F00FF7E76 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 497A42C9124FC15A00FF7E76 /* qtmaterialpreview.cpp */;
- name = "qtmaterialpreview.cpp: 20";
- rLen = 17;
- rLoc = 344;
- rType = 0;
- vrLen = 1168;
- vrLoc = 135;
- };
- 497A4320124FCC2F00FF7E76 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 497A42C0124FBEC200FF7E76 /* qtmaterialpreview.h */;
- name = "qtmaterialpreview.h: 24";
- rLen = 17;
- rLoc = 437;
- rType = 0;
- vrLen = 1009;
- vrLoc = 169;
- };
- 497A4321124FCC2F00FF7E76 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 497A41E9124FA91600FF7E76 /* qtmaterialeditor.h */;
- name = "qtmaterialeditor.h: 17";
- rLen = 0;
- rLoc = 289;
- rType = 0;
- vrLen = 532;
- vrLoc = 0;
- };
49880E5812459B5A00AC87B9 /* ShaderExec */ = {
activeExec = 0;
executables = (
@@ -286,18 +388,30 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 307290693;
- PBXWorkspaceStateSaveDate = 307290693;
+ PBXPerProjectTemplateStateSaveDate = 307457533;
+ PBXWorkspaceStateSaveDate = 307457533;
};
perUserProjectItems = {
- 497A4301124FC4C600FF7E76 = 497A4301124FC4C600FF7E76 /* PBXTextBookmark
*/;
- 497A4309124FC58D00FF7E76 = 497A4309124FC58D00FF7E76 /* PBXTextBookmark
*/;
- 497A430B124FC58D00FF7E76 = 497A430B124FC58D00FF7E76 /* PBXTextBookmark
*/;
- 497A4311124FC60000FF7E76 = 497A4311124FC60000FF7E76 /* PBXTextBookmark
*/;
- 497A431E124FCC2F00FF7E76 = 497A431E124FCC2F00FF7E76 /* PBXTextBookmark
*/;
- 497A431F124FCC2F00FF7E76 = 497A431F124FCC2F00FF7E76 /* PBXTextBookmark
*/;
- 497A4320124FCC2F00FF7E76 = 497A4320124FCC2F00FF7E76 /* PBXTextBookmark
*/;
- 497A4321124FCC2F00FF7E76 = 497A4321124FCC2F00FF7E76 /* PBXTextBookmark
*/;
+ 496A8D9C1253768E00CEDA03 /* PBXBookmark */ = 496A8D9C1253768E00CEDA03
/* PBXBookmark */;
+ 496A8DA41253790A00CEDA03 /* PBXBookmark */ = 496A8DA41253790A00CEDA03
/* PBXBookmark */;
+ 496A8DAB1253798400CEDA03 /* PBXBookmark */ = 496A8DAB1253798400CEDA03
/* PBXBookmark */;
+ 496A8DC6125393B000CEDA03 /* PBXTextBookmark */ =
496A8DC6125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DC7125393B000CEDA03 /* PBXTextBookmark */ =
496A8DC7125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DC8125393B000CEDA03 /* PBXTextBookmark */ =
496A8DC8125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DC9125393B000CEDA03 /* PBXTextBookmark */ =
496A8DC9125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DCC125393B000CEDA03 /* PBXTextBookmark */ =
496A8DCC125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DCD125393B000CEDA03 /* PBXTextBookmark */ =
496A8DCD125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DCE125393B000CEDA03 /* PBXTextBookmark */ =
496A8DCE125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DCF125393B000CEDA03 /* PBXTextBookmark */ =
496A8DCF125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DD2125393B000CEDA03 /* PBXTextBookmark */ =
496A8DD2125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DD3125393B000CEDA03 /* PBXTextBookmark */ =
496A8DD3125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DD6125393B000CEDA03 /* PBXTextBookmark */ =
496A8DD6125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DD7125393B000CEDA03 /* PBXTextBookmark */ =
496A8DD7125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DDA125393B000CEDA03 /* PBXTextBookmark */ =
496A8DDA125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DDD125393B000CEDA03 /* PBXTextBookmark */ =
496A8DDD125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DE0125393B000CEDA03 /* PBXTextBookmark */ =
496A8DE0125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DE3125393B000CEDA03 /* PBXTextBookmark */ =
496A8DE3125393B000CEDA03 /* PBXTextBookmark */;
+ 496A8DE4125393B000CEDA03 /* PBXTextBookmark */ =
496A8DE4125393B000CEDA03 /* PBXTextBookmark */;
};
sourceControlManager = 49C7DC6A1232ABF100E24C8D /* Source Control */;
userBuildSettings = {
@@ -316,9 +430,9 @@
};
49C7DC811232ACD900E24C8D /* CMakeLists.txt */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {988, 1840}}";
- sepNavSelRange = "{3545, 0}";
- sepNavVisRange = "{3290, 754}";
+ sepNavIntBoundsRect = "{{0, 0}, {988, 1872}}";
+ sepNavSelRange = "{3578, 0}";
+ sepNavVisRange = "{3270, 806}";
sepNavWindowFrame = "{{15, -1}, {802, 774}}";
};
};
@@ -364,9 +478,9 @@
};
49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {757, 2016}}";
+ sepNavIntBoundsRect = "{{0, 0}, {757, 2080}}";
sepNavSelRange = "{184, 36}";
- sepNavVisRange = "{354, 1585}";
+ sepNavVisRange = "{1470, 1158}";
sepNavWindowFrame = "{{12, -1}, {802, 774}}";
};
};
@@ -397,8 +511,8 @@
49C7DCA81232C9EF00E24C8D /* shdefs.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {743, 646}}";
- sepNavSelRange = "{0, 3}";
- sepNavVisRange = "{0, 157}";
+ sepNavSelRange = "{162, 17}";
+ sepNavVisRange = "{0, 190}";
sepNavWindowFrame = "{{15, -1}, {802, 774}}";
};
};
=======================================
--- /trunk/src/qt/qtmaterialeditor.cpp Mon Sep 27 09:06:10 2010
+++ /trunk/src/qt/qtmaterialeditor.cpp Wed Sep 29 08:37:00 2010
@@ -14,6 +14,8 @@

#include "qt/qtmaterialeditor.h"
#include "qt/qtmaterialpreview.h"
+#include "qt/qtmaterialinfowidget.h"
+#include "shlogger.h"

using namespace Shaderz;

@@ -39,7 +41,8 @@
newPreviewWidget->setMaximumSize(m_PreviewWidgetMinSize,
m_PreviewWidgetMinSize);
m_vMaterialPreviewInstances.push_back(newPreviewWidget);

- connect( newPreviewWidget, SIGNAL(selected(qtMaterialPreview*)), this,
SLOT(onSelectedPreviewMaterialChanged(qtMaterialPreview*)) );
+ connect( newPreviewWidget, SIGNAL(selected(qtMaterialPreview*)), this,
SLOT(onSelectedPreviewMaterialChanged(qtMaterialPreview*)) );
+ connect( newPreviewWidget, SIGNAL(materialCreated(qtMaterialPreview*)),
this, SLOT(onMaterialCreated(qtMaterialPreview*)) );
initialLayout->addWidget(newPreviewWidget);
}
if( m_pMaterialPreviewContainer->layout() )
@@ -107,3 +110,10 @@
}
}
}
+
+void qtMaterialEditor::onMaterialCreated( qtMaterialPreview*
InPreviewWidget )
+{
+ LOG<<"Material was created ...\n";
+ QWidget* materialInfoWidget =
dynamic_cast<QWidget*>(InPreviewWidget->getMaterialInfoWidget());
+ layout()->addWidget( materialInfoWidget );
+}
=======================================
--- /trunk/src/qt/qtmaterialpreview.cpp Mon Sep 27 09:06:10 2010
+++ /trunk/src/qt/qtmaterialpreview.cpp Wed Sep 29 08:37:00 2010
@@ -7,7 +7,13 @@
*
*/

+#include <QContextMenuEvent>
+#include <QFileDialog>
+#include <QAction>
+#include <QMenu>
+
#include "qt/qtmaterialpreview.h"
+#include "qt/qtmaterialinfowidget.h"
#include "shmaterial.h"
#include "shlogger.h"

@@ -22,8 +28,10 @@
const QGLWidget * pShareWidget,
WindowFlags f,
std::string sSceneFilePath)
- : ParentClass(pParent, pName, pShareWidget, f, sSceneFilePath),
- m_bIsSelected(false)
+ : ParentClass(pParent, pName, pShareWidget, f, sSceneFilePath)
+ , m_bIsSelected(false)
+ , m_pMaterial( new shMaterial() )
+ , m_pMaterialInfoWidget( new qtMaterialInfoWidget(0, m_pMaterial) ) // no
parent; the material editor will take ownership later
{
// load scene. This class will load a sphere from 3ds file for now.
// todo: avoid loading a 3ds file and generate a sphere of your own
@@ -31,6 +39,27 @@
{
loadScene("../../../data/sphere.3ds");
}
+
+ // create and connect actions
+ m_pCreateMaterialFromFile = new QAction( "Create Material from File",
this );
+ connect( m_pCreateMaterialFromFile, SIGNAL(triggered()), this,
SLOT(onCreateMaterialFromFile()) );
+}
+
+qtMaterialPreview::~qtMaterialPreview()
+{
+ // delete material
+ if( m_pMaterial )
+ {
+ delete m_pMaterial;
+ }
+ m_pMaterial = 0;
+
+ // delete material info widget
+ if( m_pMaterialInfoWidget )
+ {
+ delete m_pMaterialInfoWidget;
+ }
+ m_pMaterialInfoWidget = 0;
}

void qtMaterialPreview::loadScene(std::string strModelPath)
@@ -112,3 +141,21 @@
osg::StateSet* ss = m_pRoot->getOrCreateStateSet();
ss->setAttributeAndModes(InMaterial);
}
+
+void qtMaterialPreview::contextMenuEvent(QContextMenuEvent* InEventInfo)
+{
+ QMenu contextMenu(this);
+ contextMenu.addAction(m_pCreateMaterialFromFile);
+ contextMenu.exec(InEventInfo->globalPos());
+}
+
+void qtMaterialPreview::onCreateMaterialFromFile()
+{
+ QString materialFile = QFileDialog::getOpenFileName( this, "Material
File", SHADERZ_DATA_PATH );
+ if( materialFile != "" && m_pMaterial)
+ {
+ m_pMaterial->loadMaterialFromFile( materialFile.toLatin1().data() );
+ m_pMaterialInfoWidget->populateMaterialParams();
+ emit materialCreated(this);
+ }
+}
=======================================
--- /trunk/src/qt/qtshaderparameterwidget.cpp Sun Sep 26 11:43:10 2010
+++ /trunk/src/qt/qtshaderparameterwidget.cpp Wed Sep 29 08:37:00 2010
@@ -74,11 +74,6 @@

void qtShaderParameterWidget::initializeWidget()
{
- // the top level main layout will allow us to place a button to the right
of the inputs created below
- QHBoxLayout* mainLayout = new QHBoxLayout;
- QGridLayout* pLayout = new QGridLayout;
- mainLayout->addItem(pLayout);
-
// delete prev widgets before creating new ones
int widgetIndex;
for( widgetIndex=0; widgetIndex < m_vWidgets.size(); ++widgetIndex )
@@ -89,12 +84,19 @@
delete m_pStdParamButton;
m_pStdParamButton = 0;

+ // the top level main layout will allow us to place a button to the right
of the inputs created below
+ QHBoxLayout* mainLayout = new QHBoxLayout;
+ QGridLayout* pSubWidgetLayout = new QGridLayout;
+ pSubWidgetLayout->setSpacing(3);
+ mainLayout->addItem(pSubWidgetLayout);
+
switch(m_ParamInfo.paramClass)
{
case SH_PARAMETERCLASS_SCALAR:
{
QWidget* pBox = internalCreateWidget();
- pLayout->addWidget(pBox, 0, 0);
+ pSubWidgetLayout->addWidget(pBox, 0, 0);
+ pSubWidgetLayout->setAlignment( pBox, Qt::AlignLeft);
m_vWidgets.push_back(pBox);
}
break;
@@ -105,7 +107,8 @@
for( iRow=0; iRow < m_ParamInfo.rows; ++iRow )
{
QWidget* pBox = internalCreateWidget();
- pLayout->addWidget(pBox, 0, iRow);
+ pSubWidgetLayout->addWidget(pBox, 0, iRow);
+ pSubWidgetLayout->setAlignment( pBox, Qt::AlignLeft);
m_vWidgets.push_back(pBox);

// if the param is a color, then do not create more widgets
@@ -130,7 +133,8 @@
for( iCol=0; iCol < m_ParamInfo.columns; ++iCol )
{
QWidget* pBox = internalCreateWidget();
- pLayout->addWidget(pBox, iRow, iCol);
+ pSubWidgetLayout->addWidget(pBox, iRow, iCol);
+ pSubWidgetLayout->setAlignment( pBox, Qt::AlignLeft);
m_vWidgets.push_back(pBox);

// if its a standard parameter, then we don't need to create all
input widgets
@@ -158,6 +162,7 @@
m_pStdParamButton->setMaximumSize(20,20);
connect( m_pStdParamButton, SIGNAL(clicked()), this,
SLOT(onChangeStandardType()));
mainLayout->addWidget(m_pStdParamButton);
+ mainLayout->setAlignment( m_pStdParamButton, Qt::AlignLeft);
}

if( layout() )
@@ -288,6 +293,7 @@
{
pUIElement = new qtShaderParamColorButton( QString("C"), this);
pUIElement->setMinimumSize(20,20);
+ pUIElement->setMaximumSize(50,20);
}
else if( m_ParamInfo.standardParamType != SH_STANDARDPARAM_NONE)
{
@@ -298,6 +304,10 @@
{
pUIElement = new QLineEdit(this);
pUIElement->setMinimumSize(50,20);
+
+ // maintain smaller edit boxes for matrix/vector
+ int maxSize = ( m_ParamInfo.paramClass == SH_PARAMETERCLASS_MATRIX ||
m_ParamInfo.paramClass == SH_PARAMETERCLASS_VECTOR) ? 40 : 100;
+ pUIElement->setMaximumSize(maxSize,20);
}

return pUIElement;

Reply all
Reply to author
Forward
0 new messages