|
From: <le...@us...> - 2007-01-13 18:04:45
|
Revision: 160
http://svn.sourceforge.net/qcell/?rev=160&view=rev
Author: lessm
Date: 2007-01-13 10:04:39 -0800 (Sat, 13 Jan 2007)
Log Message:
-----------
- world data is editable now i 2D view
Modified Paths:
--------------
trunk/qcell/baseheaders/CalculationData.h
trunk/qcell/baseheaders/simulationwindow.h
trunk/qcell/baseheaders/simulationwindow.ui
trunk/qcell/basesources/CalculationData.cpp
trunk/qcell/basesources/Calculator.cpp
trunk/qcell/basesources/simulationwindow.cpp
trunk/qcell/visgui/MainWindow.cpp
trunk/qcell/visgui/visgui.pro
Added Paths:
-----------
trunk/qcell/baseheaders/basetools.h
trunk/qcell/baseheaders/basetools.ui
trunk/qcell/basesources/basetools.cpp
Modified: trunk/qcell/baseheaders/CalculationData.h
===================================================================
--- trunk/qcell/baseheaders/CalculationData.h 2007-01-12 20:35:43 UTC (rev 159)
+++ trunk/qcell/baseheaders/CalculationData.h 2007-01-13 18:04:39 UTC (rev 160)
@@ -70,6 +70,7 @@
int getSizeT(void);
int getSizeInByte(void);
int getDimension(void);
+ QVector<int> getSize(void);
/*const*/ char *getDataPointer(void);
void fillData(char *dataPointer);
Added: trunk/qcell/baseheaders/basetools.h
===================================================================
--- trunk/qcell/baseheaders/basetools.h (rev 0)
+++ trunk/qcell/baseheaders/basetools.h 2007-01-13 18:04:39 UTC (rev 160)
@@ -0,0 +1,36 @@
+#ifndef BASETOOLS_H
+#define BASETOOLS_H
+
+#include <QWidget>
+#include <QTableWidget>
+#include "ui_basetools.h"
+
+class BaseTools : public QWidget
+{
+ Q_OBJECT
+
+public:
+ BaseTools(QWidget *parent = 0);
+ ~BaseTools();
+
+ QTableWidget * getValueTablePointer(void);
+
+private:
+ Ui::BaseToolsClass ui;
+ int editMode;
+
+protected slots:
+ void modeChangeSelect(void);
+ void modeChangeEdit(void);
+ void commandCopy(void);
+ void commandPaste(void);
+ void commandFill(void);
+ void updateSelectedSymbol(int row, int column);
+
+signals:
+ void toolsModeUpdate(int mode);
+ void command(int cmd);
+ void sumbolSelected(int index);
+};
+
+#endif // BASETOOLS_H
Added: trunk/qcell/baseheaders/basetools.ui
===================================================================
--- trunk/qcell/baseheaders/basetools.ui (rev 0)
+++ trunk/qcell/baseheaders/basetools.ui 2007-01-13 18:04:39 UTC (rev 160)
@@ -0,0 +1,142 @@
+<ui version="4.0" >
+ <class>BaseToolsClass</class>
+ <widget class="QWidget" name="BaseToolsClass" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>102</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle" >
+ <string>BaseTools</string>
+ </property>
+ <widget class="QGroupBox" name="groupBox" >
+ <property name="geometry" >
+ <rect>
+ <x>1</x>
+ <y>0</y>
+ <width>100</width>
+ <height>71</height>
+ </rect>
+ </property>
+ <property name="title" >
+ <string>Edit Mode</string>
+ </property>
+ <widget class="QToolButton" name="ModeEditButton" >
+ <property name="geometry" >
+ <rect>
+ <x>10</x>
+ <y>40</y>
+ <width>81</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Edit</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QToolButton" name="ModeSelectButton" >
+ <property name="geometry" >
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>81</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Select</string>
+ </property>
+ <property name="checkable" >
+ <bool>true</bool>
+ </property>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox" name="groupBox_2" >
+ <property name="geometry" >
+ <rect>
+ <x>1</x>
+ <y>70</y>
+ <width>100</width>
+ <height>91</height>
+ </rect>
+ </property>
+ <property name="title" >
+ <string>Edit Tools</string>
+ </property>
+ <widget class="QToolButton" name="FillButton" >
+ <property name="geometry" >
+ <rect>
+ <x>10</x>
+ <y>60</y>
+ <width>81</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Fill</string>
+ </property>
+ </widget>
+ <widget class="QToolButton" name="PasteButton" >
+ <property name="geometry" >
+ <rect>
+ <x>10</x>
+ <y>40</y>
+ <width>81</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Paste</string>
+ </property>
+ </widget>
+ <widget class="QToolButton" name="CopyButton" >
+ <property name="geometry" >
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>81</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text" >
+ <string>Copy</string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QGroupBox" name="groupBox_3" >
+ <property name="geometry" >
+ <rect>
+ <x>1</x>
+ <y>160</y>
+ <width>100</width>
+ <height>131</height>
+ </rect>
+ </property>
+ <property name="title" >
+ <string>Values</string>
+ </property>
+ <widget class="QTableWidget" name="valueTable" >
+ <property name="geometry" >
+ <rect>
+ <x>5</x>
+ <y>20</y>
+ <width>90</width>
+ <height>101</height>
+ </rect>
+ </property>
+ </widget>
+ </widget>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <resources/>
+ <connections/>
+</ui>
Modified: trunk/qcell/baseheaders/simulationwindow.h
===================================================================
--- trunk/qcell/baseheaders/simulationwindow.h 2007-01-12 20:35:43 UTC (rev 159)
+++ trunk/qcell/baseheaders/simulationwindow.h 2007-01-13 18:04:39 UTC (rev 160)
@@ -14,6 +14,7 @@
#include <QColorDialog>
#include "ui_simulationwindow.h"
#include "../baseheaders/Renderer.h"
+#include "../baseheaders/basetools.h"
#include <QToolBox>
@@ -38,6 +39,8 @@
QToolBox *tools;
+ BaseTools *basetools;
+
char table2DUpdateRequest, table1DUpdateRequest, graph2DUpdateRequest;
QGraphicsView *graphicsView2D;
@@ -45,6 +48,8 @@
QGraphicsPixmapItem *graphicsScene2DPixmap;
QPixmap *pixmap;
+ int selectedSymbol, workMode;
+
virtual void mouseMoveEvent(QMouseEvent * event);
virtual void mousePressEvent(QMouseEvent * event);
virtual void wheelEvent(QWheelEvent * event);
@@ -59,6 +64,7 @@
void update1DTable(void);
void update1DTableMem(void);
void updateSymbolTable(void);
+ void changeSymbol(int x, int y, int z);
public:
simulationWindow(QWidget *parent = 0);
@@ -84,6 +90,11 @@
void corectPerspectve(void);
void orthoPerspective(void);
+ void GridView2DEdit(int row, int column);
+
+ void workModeChange(int mode);
+ void selectSymbol(int index);
+
signals:
void progressUpdate(int val);
Modified: trunk/qcell/baseheaders/simulationwindow.ui
===================================================================
--- trunk/qcell/baseheaders/simulationwindow.ui 2007-01-12 20:35:43 UTC (rev 159)
+++ trunk/qcell/baseheaders/simulationwindow.ui 2007-01-13 18:04:39 UTC (rev 160)
@@ -5,8 +5,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>536</width>
- <height>182</height>
+ <width>508</width>
+ <height>301</height>
</rect>
</property>
<property name="sizePolicy" >
@@ -20,281 +20,279 @@
<property name="windowTitle" >
<string>simulationWindow</string>
</property>
- <layout class="QVBoxLayout" >
- <property name="margin" >
- <number>9</number>
+ <widget class="QTabWidget" name="tabWidget" >
+ <property name="geometry" >
+ <rect>
+ <x>10</x>
+ <y>10</y>
+ <width>490</width>
+ <height>283</height>
+ </rect>
</property>
- <property name="spacing" >
- <number>6</number>
+ <property name="tabPosition" >
+ <enum>QTabWidget::North</enum>
</property>
- <item>
- <widget class="QTabWidget" name="tabWidget" >
- <property name="tabPosition" >
- <enum>QTabWidget::North</enum>
+ <property name="tabShape" >
+ <enum>QTabWidget::Rounded</enum>
+ </property>
+ <property name="currentIndex" >
+ <number>4</number>
+ </property>
+ <widget class="QWidget" name="view3D" >
+ <attribute name="title" >
+ <string>3D View</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
</property>
- <property name="tabShape" >
- <enum>QTabWidget::Rounded</enum>
+ <property name="spacing" >
+ <number>6</number>
</property>
- <property name="currentIndex" >
- <number>0</number>
- </property>
- <widget class="QWidget" name="view3D" >
- <attribute name="title" >
- <string>3D View</string>
- </attribute>
- <layout class="QVBoxLayout" >
+ <item>
+ <layout class="QHBoxLayout" >
<property name="margin" >
- <number>9</number>
+ <number>0</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
- <layout class="QHBoxLayout" >
- <property name="margin" >
- <number>0</number>
+ <widget class="QRadioButton" name="perspectiveView" >
+ <property name="text" >
+ <string>Perspective</string>
</property>
- <property name="spacing" >
- <number>6</number>
+ <property name="checked" >
+ <bool>true</bool>
</property>
- <item>
- <widget class="QRadioButton" name="perspectiveView" >
- <property name="text" >
- <string>Perspective</string>
- </property>
- <property name="checked" >
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="ortho2DView" >
- <property name="text" >
- <string>Ortho2D</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
+ </widget>
</item>
+ <item>
+ <widget class="QRadioButton" name="ortho2DView" >
+ <property name="text" >
+ <string>Ortho2D</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
</layout>
- </widget>
- <widget class="QWidget" name="view2D" >
- <attribute name="title" >
- <string>2D Text View</string>
- </attribute>
- <layout class="QVBoxLayout" >
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="view2D" >
+ <attribute name="title" >
+ <string>2D Text View</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
<property name="margin" >
- <number>9</number>
+ <number>0</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
- <layout class="QHBoxLayout" >
- <property name="margin" >
- <number>0</number>
+ <widget class="QCheckBox" name="Grig2DColors" >
+ <property name="text" >
+ <string>Enable Colors</string>
</property>
- <property name="spacing" >
- <number>6</number>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="Grid2DValues" >
+ <property name="text" >
+ <string>Values</string>
</property>
- <item>
- <widget class="QCheckBox" name="Grig2DColors" >
- <property name="text" >
- <string>Enable Colors</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="Grid2DValues" >
- <property name="text" >
- <string>Values</string>
- </property>
- <property name="checked" >
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="Grid2DSybmols" >
- <property name="text" >
- <string>Symbols</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label" >
- <property name="lineWidth" >
- <number>3</number>
- </property>
- <property name="text" >
- <string>Z Plane</string>
- </property>
- <property name="textFormat" >
- <enum>Qt::AutoText</enum>
- </property>
- <property name="buddy" >
- <cstring>Grid2DZplane</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="Grid2DZplane" />
- </item>
- <item>
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
</item>
+ <item>
+ <widget class="QRadioButton" name="Grid2DSybmols" >
+ <property name="text" >
+ <string>Symbols</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="lineWidth" >
+ <number>3</number>
+ </property>
+ <property name="text" >
+ <string>Z Plane</string>
+ </property>
+ <property name="textFormat" >
+ <enum>Qt::AutoText</enum>
+ </property>
+ <property name="buddy" >
+ <cstring>Grid2DZplane</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="Grid2DZplane" />
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
</layout>
- </widget>
- <widget class="QWidget" name="view2DGraph" >
- <attribute name="title" >
- <string>2D Graphics View</string>
- </attribute>
- </widget>
- <widget class="QWidget" name="view1D" >
- <attribute name="title" >
- <string>1D Text View</string>
- </attribute>
- <layout class="QVBoxLayout" >
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="view2DGraph" >
+ <attribute name="title" >
+ <string>2D Graphics View</string>
+ </attribute>
+ </widget>
+ <widget class="QWidget" name="view1D" >
+ <attribute name="title" >
+ <string>1D Text View</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
<property name="margin" >
- <number>9</number>
+ <number>0</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
- <layout class="QHBoxLayout" >
- <property name="margin" >
- <number>0</number>
+ <widget class="QCheckBox" name="Grig1DColors" >
+ <property name="text" >
+ <string>Enable Colors</string>
</property>
- <property name="spacing" >
- <number>6</number>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="Grid1DValues" >
+ <property name="text" >
+ <string>Values</string>
</property>
- <item>
- <widget class="QCheckBox" name="Grig1DColors" >
- <property name="text" >
- <string>Enable Colors</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="Grid1DValues" >
- <property name="text" >
- <string>Values</string>
- </property>
- <property name="checked" >
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="Grid1DSybmols" >
- <property name="text" >
- <string>Symbols</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="memClr" >
- <property name="text" >
- <string>Clear Memory</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
+ <property name="checked" >
+ <bool>true</bool>
+ </property>
+ </widget>
</item>
+ <item>
+ <widget class="QRadioButton" name="Grid1DSybmols" >
+ <property name="text" >
+ <string>Symbols</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="memClr" >
+ <property name="text" >
+ <string>Clear Memory</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
</layout>
- </widget>
- <widget class="QWidget" name="symbolConfig" >
- <attribute name="title" >
- <string>Symbols Configuration</string>
- </attribute>
- <layout class="QVBoxLayout" >
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="symbolConfig" >
+ <attribute name="title" >
+ <string>Symbols Configuration</string>
+ </attribute>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
<property name="margin" >
- <number>9</number>
+ <number>0</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
- <layout class="QHBoxLayout" >
- <property name="margin" >
- <number>0</number>
+ <widget class="QPushButton" name="addSymbol" >
+ <property name="text" >
+ <string>Add Symbol</string>
</property>
- <property name="spacing" >
- <number>6</number>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="removeSymbol" >
+ <property name="text" >
+ <string>Remove Symbol</string>
</property>
- <item>
- <widget class="QPushButton" name="addSymbol" >
- <property name="text" >
- <string>Add Symbol</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="removeSymbol" >
- <property name="text" >
- <string>Remove Symbol</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
+ </widget>
</item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
</layout>
- </widget>
- </widget>
- </item>
- </layout>
+ </item>
+ </layout>
+ </widget>
+ </widget>
</widget>
<layoutdefault spacing="6" margin="11" />
<resources/>
Modified: trunk/qcell/basesources/CalculationData.cpp
===================================================================
--- trunk/qcell/basesources/CalculationData.cpp 2007-01-12 20:35:43 UTC (rev 159)
+++ trunk/qcell/basesources/CalculationData.cpp 2007-01-13 18:04:39 UTC (rev 160)
@@ -39,7 +39,6 @@
void * CalculationData::getAddressAt(int x, int y, int z, int t)
{
- int dSize;
if(dataType==baseDataTypes::NONE)
return NULL;
return data + dataSize * (x + y * sizeX + z * sizeX * sizeY + t * sizeX * sizeY * sizeZ);
@@ -468,7 +467,8 @@
dataSize = sizeof(short);
break;
}
- resizeData();
+ if(type!=dataType && sizeX>0)
+ resizeData();
}
}
@@ -492,6 +492,11 @@
dimension = 1;
return resizeData(foreignDataPointer, dataPointer);
}
+ else
+ {
+ if(dataPointer && foreignDataPointer)
+ setForeignDataPointer(dataPointer);
+ }
return 1;
}
@@ -506,6 +511,11 @@
dimension = 2;
return resizeData(foreignDataPointer, dataPointer);
}
+ else
+ {
+ if(dataPointer && foreignDataPointer)
+ setForeignDataPointer(dataPointer);
+ }
return 1;
}
@@ -520,6 +530,11 @@
dimension = 3;
return resizeData(foreignDataPointer, dataPointer);
}
+ else
+ {
+ if(dataPointer && foreignDataPointer)
+ setForeignDataPointer(dataPointer);
+ }
return 1;
}
@@ -534,6 +549,11 @@
dimension = 4;
return resizeData(foreignDataPointer, dataPointer);
}
+ else
+ {
+ if(dataPointer && foreignDataPointer)
+ setForeignDataPointer(dataPointer);
+ }
return 1;
}
@@ -544,11 +564,11 @@
case 1:
return resizeData(newSize[0], dataPointer, foreignDataPointer);
case 2:
- return resizeData(newSize[1], newSize[2], dataPointer, foreignDataPointer);
+ return resizeData(newSize[0], newSize[1], dataPointer, foreignDataPointer);
case 3:
- return resizeData(newSize[1], newSize[2], newSize[3], dataPointer, foreignDataPointer);
+ return resizeData(newSize[0], newSize[1], newSize[2], dataPointer, foreignDataPointer);
case 4:
- return resizeData(newSize[1], newSize[2], newSize[3], newSize[4], dataPointer, foreignDataPointer);
+ return resizeData(newSize[0], newSize[1], newSize[2], newSize[3], dataPointer, foreignDataPointer);
}
return 0;
}
@@ -653,6 +673,27 @@
return dimension;
}
+QVector<int> CalculationData::getSize(void)
+{
+ QVector<int> out;
+ switch(getDimension())
+ {
+ case 1:
+ out<<sizeX;
+ break;
+ case 2:
+ out<<sizeX<<sizeY;
+ break;
+ case 3:
+ out<<sizeX<<sizeY<<sizeZ;
+ break;
+ case 4:
+ out<<sizeX<<sizeY<<sizeZ<<sizeT;
+ break;
+ }
+ return out;
+}
+
/*const*/ char *CalculationData::getDataPointer(void)
{
return data;
Modified: trunk/qcell/basesources/Calculator.cpp
===================================================================
--- trunk/qcell/basesources/Calculator.cpp 2007-01-12 20:35:43 UTC (rev 159)
+++ trunk/qcell/basesources/Calculator.cpp 2007-01-13 18:04:39 UTC (rev 160)
@@ -222,7 +222,6 @@
void Calculator::calculate(void)
{
int counter = 0;
- int index;
char temp[8] = {0,0,0,0,0,0,0,0};
int sx = sizeX, sy = sizeY, sz = sizeZ, st = sizeT;
Added: trunk/qcell/basesources/basetools.cpp
===================================================================
--- trunk/qcell/basesources/basetools.cpp (rev 0)
+++ trunk/qcell/basesources/basetools.cpp 2007-01-13 18:04:39 UTC (rev 160)
@@ -0,0 +1,69 @@
+#include "../baseheaders/basetools.h"
+
+BaseTools::BaseTools(QWidget *parent)
+ : QWidget(parent)
+{
+ ui.setupUi(this);
+ editMode = 0;
+ connect(ui.CopyButton, SIGNAL(clicked(bool)), SLOT(commandCopy()));
+ connect(ui.PasteButton, SIGNAL(clicked(bool)), SLOT(commandPaste()));
+ connect(ui.PasteButton, SIGNAL(clicked(bool)), SLOT(commandFill()));
+
+ connect(ui.ModeSelectButton, SIGNAL(clicked(bool)), SLOT(modeChangeSelect()));
+ connect(ui.ModeEditButton, SIGNAL(clicked(bool)), SLOT(modeChangeEdit()));
+
+ connect(ui.valueTable, SIGNAL(cellClicked(int, int)), SLOT(updateSelectedSymbol(int, int)));
+}
+
+BaseTools::~BaseTools()
+{
+
+}
+
+QTableWidget * BaseTools::getValueTablePointer(void)
+{
+ return ui.valueTable;
+}
+
+void BaseTools::modeChangeSelect(void)
+{
+
+ ui.ModeSelectButton->setChecked(1);
+ ui.ModeEditButton->setChecked(0);
+ if(editMode!=0)
+ {
+ editMode=0;
+ emit toolsModeUpdate(0);
+ }
+}
+
+void BaseTools::modeChangeEdit(void)
+{
+ ui.ModeEditButton->setChecked(1);
+ ui.ModeSelectButton->setChecked(0);
+ if(editMode!=1)
+ {
+ editMode=1;
+ emit toolsModeUpdate(1);
+ }
+}
+
+void BaseTools::commandCopy(void)
+{
+ emit command(0);
+}
+
+void BaseTools::commandPaste(void)
+{
+ emit command(1);
+}
+
+void BaseTools::commandFill(void)
+{
+ emit command(2);
+}
+
+void BaseTools::updateSelectedSymbol(int row, int column)
+{
+ emit sumbolSelected(row);
+}
\ No newline at end of file
Modified: trunk/qcell/basesources/simulationwindow.cpp
===================================================================
--- trunk/qcell/basesources/simulationwindow.cpp 2007-01-12 20:35:43 UTC (rev 159)
+++ trunk/qcell/basesources/simulationwindow.cpp 2007-01-13 18:04:39 UTC (rev 160)
@@ -83,7 +83,7 @@
void simulationWindow::resizeEvent(QResizeEvent * event)
{
- ui.tabWidget->resize(width() - 20, height() - 60);
+ ui.tabWidget->resize(width() - 140, height() - 10);
ui.view1D->resize(ui.tabWidget->width(), ui.tabWidget->height() - 20);
ui.view2D->resize(ui.tabWidget->width(), ui.tabWidget->height() - 20);
ui.view3D->resize(ui.tabWidget->width(), ui.tabWidget->height() - 20);
@@ -105,6 +105,8 @@
symbolTable->move(0, 35);
symbolTable->resize(ui.symbolConfig->width() - 7, ui.symbolConfig->height() -42);
+
+ basetools->move(width() - 101, 0);
}
void simulationWindow::paintEvent(QPaintEvent * event)
@@ -229,8 +231,8 @@
item->setTextColor(Qt::black);
if(ui.Grig2DColors->isChecked())
{
- item->setBackgroundColor(renderer->getSymbol(index).color);
- item->setTextColor(renderer->getSymbol(index).textColor);
+ item->setBackgroundColor(symbol.color);
+ item->setTextColor(symbol.textColor);
}
else
{
@@ -368,6 +370,10 @@
if(symbolTable->rowCount() != renderer->getSymbolCount())
{
symbolTable->setRowCount(renderer->getSymbolCount());
+
+ basetools->getValueTablePointer()->setRowCount(renderer->getSymbolCount());
+ basetools->getValueTablePointer()->setColumnWidth(0, 53);
+
for(int i=0;i<symbolTable->rowCount();++i)
{
temp = renderer->getSymbol(i);
@@ -377,6 +383,10 @@
item->setText(tr("%1").arg(i));
symbolTable->setItem(i, 0, item);
+ item = new QTableWidgetItem(*item);
+ item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+ basetools->getValueTablePointer()->setItem(i, 0, item);
+
item = new QTableWidgetItem;
item->setTextAlignment(Qt::AlignCenter);
item->setText(tr("%1").arg(temp.textSybmol));
@@ -408,6 +418,7 @@
{
for(int i=0;i<renderer->getSymbolCount();++i)
{
+
temp = renderer->getSymbol(i);
item = symbolTable->item(i, 0);
item->setText(tr("%1").arg(i));
@@ -430,6 +441,12 @@
}
}
+void simulationWindow::changeSymbol(int x, int y, int z)
+{
+ if(workMode==1)
+ getStorage()->setValueAt(selectedSymbol, x, y, z);
+}
+
simulationWindow::simulationWindow(QWidget *parent)
: QWidget(parent)
{
@@ -498,6 +515,18 @@
table2DUpdateRequest = 0;
table1DUpdateRequest = 0;
+
+ basetools = new BaseTools(this);
+ basetools->getValueTablePointer()->setColumnCount(1);
+ basetools->getValueTablePointer()->setHorizontalHeaderItem(0, new QTableWidgetItem(tr("Value")));
+
+ selectedSymbol = 0;
+ workMode = 0;
+
+ connect(table2D, SIGNAL(cellClicked(int, int)), SLOT(GridView2DEdit(int, int)));
+
+ connect(basetools, SIGNAL(toolsModeUpdate(int)), SLOT(workModeChange(int)));
+ connect(basetools, SIGNAL(sumbolSelected(int)), SLOT(selectSymbol(int)));
}
simulationWindow::~simulationWindow()
@@ -681,3 +710,59 @@
renderer->setOrtoPerspective();
renderer->repaint();
}
+
+void simulationWindow::GridView2DEdit(int row, int column)
+{
+ QTableWidgetItem *item;
+ bool needUpdate = 0;
+ SYMBOL symbol;
+ QString tmpString;
+ if(workMode==1)
+ {
+ changeSymbol(column, row, z_plane);
+ item = table2D->item(row, column);
+ symbol = renderer->getSymbol(selectedSymbol);
+ if(ui.Grid2DValues->isChecked())
+ {
+ tmpString.setNum(selectedSymbol);
+ if(item->text()!=tmpString)
+ {
+ item->setText(tmpString);
+ needUpdate = 1;
+ }
+ }
+ else
+ {
+ if(symbol.textSybmol!=(item->text())[0])
+ {
+ item->setText(symbol.textSybmol);
+ needUpdate = 1;
+ }
+ }
+ if(needUpdate)
+ {
+ item->setTextColor(Qt::black);
+ if(ui.Grig2DColors->isChecked())
+ {
+ item->setBackgroundColor(symbol.color);
+ item->setTextColor(symbol.textColor);
+ }
+ else
+ {
+ item->setTextColor(Qt::black);
+ item->setBackgroundColor(Qt::white);
+ }
+ }
+ }
+}
+
+void simulationWindow::workModeChange(int mode)
+{
+ workMode = mode;
+}
+
+void simulationWindow::selectSymbol(int index)
+{
+ selectedSymbol = index;
+}
+
Modified: trunk/qcell/visgui/MainWindow.cpp
===================================================================
--- trunk/qcell/visgui/MainWindow.cpp 2007-01-12 20:35:43 UTC (rev 159)
+++ trunk/qcell/visgui/MainWindow.cpp 2007-01-13 18:04:39 UTC (rev 160)
@@ -351,8 +351,10 @@
}
data.append((CalculationData*)world_parsers[subtype]->parse(file_content, type, subtype).toInt());
- *sw->getStorage() = *data.last();
+ //*sw->getStorage() = *data.last();
+
*(CalculationData*)&calc = *data.last();
+ sw->getStorage()->resizeData(calc.getSize(), calc.getDataPointer(), 1);
// Enable saving menu for World
menu_Save->setEnabled(true);
@@ -528,8 +530,11 @@
void MainWindow::update()
{
- *sw->getStorage() = *data[iteration];
- iterationLCD->display(iteration);
+ calc.getSize();
+ //*sw->getStorage() = *data[iteration];
+ //sw->getStorage()->resizeData(data[iteration-1]->getSize(), data[iteration-1]->getDataPointer(), 1);
+ sw->getStorage()->resizeData(calc.getSize(), calc.getDataPointer(), 1);
+ iterationLCD->display(iteration);
}
void MainWindow::stepForward(int step)
Modified: trunk/qcell/visgui/visgui.pro
===================================================================
--- trunk/qcell/visgui/visgui.pro 2007-01-12 20:35:43 UTC (rev 159)
+++ trunk/qcell/visgui/visgui.pro 2007-01-13 18:04:39 UTC (rev 160)
@@ -8,7 +8,8 @@
FORMS = MainWindow.ui \
AboutDialog.ui \
ExperimentSetup.ui \
- ../baseheaders/simulationwindow.ui
+ ../baseheaders/simulationwindow.ui \
+ ../baseheaders/basetools.ui
HEADERS = MainWindow.h \
ExperimentSetup.h \
../baseheaders/Client.h \
@@ -21,7 +22,8 @@
../baseheaders/LocalFunction.h \
../baseheaders/simulationwindow.h \
../baseheaders/Renderer.h \
- ../baseheaders/Calculator.h
+ ../baseheaders/Calculator.h\
+ ../baseheaders/basetools.h
SOURCES = ../basesources/GenericParserPlugin.cpp \
main.cpp \
@@ -34,7 +36,8 @@
../basesources/LocalFunction.cpp \
../basesources/simulationwindow.cpp \
../basesources/Renderer.cpp \
- ../basesources/Calculator.cpp
+ ../basesources/Calculator.cpp \
+ ../basesources/basetools.cpp
LIBS = -L../libs -lN -lFQT -lKI
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|