1.1 --- a/branchobj.cpp Wed Jul 13 11:36:15 2005 +0000
1.2 +++ b/branchobj.cpp Tue Jul 19 14:44:30 2005 +0000
1.3 @@ -1091,15 +1091,14 @@
1.4 {
1.5 // Find current parent and
1.6 // remove pointer to myself there
1.7 -
1.8 if (!dst) return NULL;
1.9 -
1.10 BranchObj *par=(BranchObj*)(parObj);
1.11 if (par)
1.12 par->removeBranchPtr (this);
1.13 else
1.14 return NULL;
1.15
1.16 + // Create new pointer to myself at dst
1.17 if (pos<0||dst->getDepth()==0)
1.18 {
1.19 // links myself as last branch at dst
2.1 Binary file demos/time-management.vym has changed
3.1 Binary file demos/todo.vym has changed
4.1 --- a/exportxhtmldialog.ui Wed Jul 13 11:36:15 2005 +0000
4.2 +++ b/exportxhtmldialog.ui Tue Jul 19 14:44:30 2005 +0000
4.3 @@ -8,8 +8,8 @@
4.4 <rect>
4.5 <x>0</x>
4.6 <y>0</y>
4.7 - <width>614</width>
4.8 - <height>757</height>
4.9 + <width>514</width>
4.10 + <height>468</height>
4.11 </rect>
4.12 </property>
4.13 <property name="minimumSize">
4.14 @@ -21,11 +21,11 @@
4.15 <property name="caption">
4.16 <string>Export XHTML</string>
4.17 </property>
4.18 - <vbox>
4.19 + <grid>
4.20 <property name="name">
4.21 <cstring>unnamed</cstring>
4.22 </property>
4.23 - <widget class="QLayoutWidget">
4.24 + <widget class="QLayoutWidget" row="0" column="0">
4.25 <property name="name">
4.26 <cstring>layout17</cstring>
4.27 </property>
4.28 @@ -80,14 +80,60 @@
4.29 </widget>
4.30 </hbox>
4.31 </widget>
4.32 - <widget class="QButtonGroup">
4.33 + <widget class="QLayoutWidget" row="5" column="0">
4.34 + <property name="name">
4.35 + <cstring>layout17</cstring>
4.36 + </property>
4.37 + <hbox>
4.38 + <property name="name">
4.39 + <cstring>unnamed</cstring>
4.40 + </property>
4.41 + <spacer>
4.42 + <property name="name">
4.43 + <cstring>spacer5</cstring>
4.44 + </property>
4.45 + <property name="orientation">
4.46 + <enum>Horizontal</enum>
4.47 + </property>
4.48 + <property name="sizeType">
4.49 + <enum>Expanding</enum>
4.50 + </property>
4.51 + <property name="sizeHint">
4.52 + <size>
4.53 + <width>61</width>
4.54 + <height>21</height>
4.55 + </size>
4.56 + </property>
4.57 + </spacer>
4.58 + <widget class="QPushButton">
4.59 + <property name="name">
4.60 + <cstring>exportButton</cstring>
4.61 + </property>
4.62 + <property name="text">
4.63 + <string>Export</string>
4.64 + </property>
4.65 + <property name="default">
4.66 + <bool>true</bool>
4.67 + </property>
4.68 + </widget>
4.69 + <widget class="QPushButton">
4.70 + <property name="name">
4.71 + <cstring>cancelButton</cstring>
4.72 + </property>
4.73 + <property name="text">
4.74 + <string>Cancel</string>
4.75 + </property>
4.76 + </widget>
4.77 + </hbox>
4.78 + </widget>
4.79 + <widget class="QButtonGroup" row="1" column="0">
4.80 <property name="name">
4.81 <cstring>buttonGroup2</cstring>
4.82 </property>
4.83 <property name="sizePolicy">
4.84 <sizepolicy>
4.85 - <hsizetype>3</hsizetype>
4.86 - <vsizetype>3</vsizetype>
4.87 + <hsizetype>5</hsizetype>
4.88 + <vsizetype>5</vsizetype>
4.89 <horstretch>0</horstretch>
4.90 <verstretch>0</verstretch>
4.91 </sizepolicy>
4.92 @@ -155,180 +201,260 @@
4.93 </widget>
4.94 </vbox>
4.95 </widget>
4.96 - <widget class="QLayoutWidget">
4.97 + <widget class="QGroupBox" row="2" column="0">
4.98 <property name="name">
4.99 - <cstring>layout6</cstring>
4.100 + <cstring>groupBox2</cstring>
4.101 + </property>
4.102 + <property name="title">
4.103 + <string>Stylesheets</string>
4.104 </property>
4.105 <grid>
4.106 <property name="name">
4.107 <cstring>unnamed</cstring>
4.108 </property>
4.109 - <widget class="QPushButton" row="5" column="3">
4.110 + <widget class="QLayoutWidget" row="1" column="0">
4.111 <property name="name">
4.112 - <cstring>browsePostExportButton</cstring>
4.113 + <cstring>layout7</cstring>
4.114 </property>
4.115 - <property name="sizePolicy">
4.116 - <sizepolicy>
4.117 - <hsizetype>0</hsizetype>
4.118 - <vsizetype>0</vsizetype>
4.119 - <horstretch>0</horstretch>
4.120 - <verstretch>0</verstretch>
4.121 - </sizepolicy>
4.122 + <hbox>
4.123 + <property name="name">
4.124 + <cstring>unnamed</cstring>
4.125 + </property>
4.126 + <widget class="QLabel">
4.127 + <property name="name">
4.128 + <cstring>textLabel2</cstring>
4.129 + </property>
4.130 + <property name="sizePolicy">
4.131 + <sizepolicy>
4.132 + <hsizetype>0</hsizetype>
4.133 + <vsizetype>5</vsizetype>
4.134 + <horstretch>0</horstretch>
4.135 + <verstretch>0</verstretch>
4.136 + </sizepolicy>
4.137 + </property>
4.138 + <property name="minimumSize">
4.139 + <size>
4.140 + <width>125</width>
4.141 + <height>0</height>
4.142 + </size>
4.143 + </property>
4.144 + <property name="text">
4.145 + <string>XSL:</string>
4.146 + </property>
4.147 + <property name="alignment">
4.148 + <set>AlignVCenter|AlignRight</set>
4.149 + </property>
4.150 + </widget>
4.151 + <widget class="QLineEdit">
4.152 + <property name="name">
4.153 + <cstring>lineEditXSL</cstring>
4.154 + </property>
4.155 + </widget>
4.156 + <widget class="QPushButton">
4.157 + <property name="name">
4.158 + <cstring>browseXSLButton</cstring>
4.159 + </property>
4.160 + <property name="sizePolicy">
4.161 + <sizepolicy>
4.162 + <hsizetype>0</hsizetype>
4.163 + <vsizetype>0</vsizetype>
4.164 + <horstretch>0</horstretch>
4.165 + <verstretch>0</verstretch>
4.166 + </sizepolicy>
4.167 + </property>
4.168 + <property name="text">
4.169 + <string>Browse</string>
4.170 + </property>
4.171 + </widget>
4.172 + </hbox>
4.173 + </widget>
4.174 + <widget class="QLayoutWidget" row="0" column="0">
4.175 + <property name="name">
4.176 + <cstring>layout6</cstring>
4.177 </property>
4.178 - <property name="text">
4.179 - <string>Browse</string>
4.180 - </property>
4.181 - </widget>
4.182 - <widget class="QLabel" row="4" column="0" rowspan="1" colspan="2">
4.183 - <property name="name">
4.184 - <cstring>textLabel1_3</cstring>
4.185 - </property>
4.186 - <property name="sizePolicy">
4.187 - <sizepolicy>
4.188 - <hsizetype>1</hsizetype>
4.189 - <vsizetype>5</vsizetype>
4.190 - <horstretch>0</horstretch>
4.191 - <verstretch>0</verstretch>
4.192 - </sizepolicy>
4.193 - </property>
4.194 - <property name="text">
4.195 - <string>Before export:</string>
4.196 - </property>
4.197 - <property name="alignment">
4.198 - <set>AlignVCenter|AlignRight</set>
4.199 - </property>
4.200 - </widget>
4.201 - <widget class="QLineEdit" row="2" column="1" rowspan="1" colspan="2">
4.202 - <property name="name">
4.203 - <cstring>lineEditXSL</cstring>
4.204 - </property>
4.205 - </widget>
4.206 - <widget class="QPushButton" row="2" column="3">
4.207 - <property name="name">
4.208 - <cstring>browseXSLButton</cstring>
4.209 - </property>
4.210 - <property name="sizePolicy">
4.211 - <sizepolicy>
4.212 - <hsizetype>0</hsizetype>
4.213 - <vsizetype>0</vsizetype>
4.214 - <horstretch>0</horstretch>
4.215 - <verstretch>0</verstretch>
4.216 - </sizepolicy>
4.217 - </property>
4.218 - <property name="text">
4.219 - <string>Browse</string>
4.220 - </property>
4.221 - </widget>
4.222 - <widget class="QLineEdit" row="4" column="2">
4.223 - <property name="name">
4.224 - <cstring>lineEditPreScript</cstring>
4.225 - </property>
4.226 - </widget>
4.227 - <widget class="QPushButton" row="4" column="3">
4.228 - <property name="name">
4.229 - <cstring>browsePreExportButton</cstring>
4.230 - </property>
4.231 - <property name="sizePolicy">
4.232 - <sizepolicy>
4.233 - <hsizetype>0</hsizetype>
4.234 - <vsizetype>0</vsizetype>
4.235 - <horstretch>0</horstretch>
4.236 - <verstretch>0</verstretch>
4.237 - </sizepolicy>
4.238 - </property>
4.239 - <property name="text">
4.240 - <string>Browse</string>
4.241 - </property>
4.242 - </widget>
4.243 - <widget class="QLabel" row="0" column="0">
4.244 - <property name="name">
4.245 - <cstring>textLabel2_3</cstring>
4.246 - </property>
4.247 - <property name="text">
4.248 - <string>Stylesheets:</string>
4.249 - </property>
4.250 - </widget>
4.251 - <widget class="QPushButton" row="1" column="3">
4.252 - <property name="name">
4.253 - <cstring>browseCSSButton</cstring>
4.254 - </property>
4.255 - <property name="sizePolicy">
4.256 - <sizepolicy>
4.257 - <hsizetype>0</hsizetype>
4.258 - <vsizetype>0</vsizetype>
4.259 - <horstretch>0</horstretch>
4.260 - <verstretch>0</verstretch>
4.261 - </sizepolicy>
4.262 - </property>
4.263 - <property name="text">
4.264 - <string>Browse</string>
4.265 - </property>
4.266 - </widget>
4.267 - <widget class="QLabel" row="1" column="0">
4.268 - <property name="name">
4.269 - <cstring>textLabel1_2</cstring>
4.270 - </property>
4.271 - <property name="text">
4.272 - <string>CSS:</string>
4.273 - </property>
4.274 - <property name="alignment">
4.275 - <set>AlignVCenter|AlignRight</set>
4.276 - </property>
4.277 - </widget>
4.278 - <widget class="QLabel" row="5" column="0" rowspan="1" colspan="2">
4.279 - <property name="name">
4.280 - <cstring>textLabel2_2</cstring>
4.281 - </property>
4.282 - <property name="sizePolicy">
4.283 - <sizepolicy>
4.284 - <hsizetype>1</hsizetype>
4.285 - <vsizetype>5</vsizetype>
4.286 - <horstretch>0</horstretch>
4.287 - <verstretch>0</verstretch>
4.288 - </sizepolicy>
4.289 - </property>
4.290 - <property name="frameShape">
4.291 - <enum>NoFrame</enum>
4.292 - </property>
4.293 - <property name="text">
4.294 - <string>After Export:</string>
4.295 - </property>
4.296 - <property name="alignment">
4.297 - <set>AlignVCenter|AlignRight</set>
4.298 - </property>
4.299 - </widget>
4.300 - <widget class="QLineEdit" row="1" column="1" rowspan="1" colspan="2">
4.301 - <property name="name">
4.302 - <cstring>lineEditCSS</cstring>
4.303 - </property>
4.304 - </widget>
4.305 - <widget class="QLabel" row="2" column="0">
4.306 - <property name="name">
4.307 - <cstring>textLabel2</cstring>
4.308 - </property>
4.309 - <property name="text">
4.310 - <string>XSL:</string>
4.311 - </property>
4.312 - <property name="alignment">
4.313 - <set>AlignVCenter|AlignRight</set>
4.314 - </property>
4.315 - </widget>
4.316 - <widget class="QLineEdit" row="5" column="2">
4.317 - <property name="name">
4.318 - <cstring>lineEditPostScript</cstring>
4.319 - </property>
4.320 - </widget>
4.321 - <widget class="QLabel" row="3" column="0">
4.322 - <property name="name">
4.323 - <cstring>textLabel1_4</cstring>
4.324 - </property>
4.325 - <property name="text">
4.326 - <string>Scripts:</string>
4.327 - </property>
4.328 + <hbox>
4.329 + <property name="name">
4.330 + <cstring>unnamed</cstring>
4.331 + </property>
4.332 + <widget class="QLabel">
4.333 + <property name="name">
4.334 + <cstring>textLabel1_2</cstring>
4.335 + </property>
4.336 + <property name="sizePolicy">
4.337 + <sizepolicy>
4.338 + <hsizetype>0</hsizetype>
4.339 + <vsizetype>5</vsizetype>
4.340 + <horstretch>0</horstretch>
4.341 + <verstretch>0</verstretch>
4.342 + </sizepolicy>
4.343 + </property>
4.344 + <property name="minimumSize">
4.345 + <size>
4.346 + <width>125</width>
4.347 + <height>0</height>
4.348 + </size>
4.349 + </property>
4.350 + <property name="text">
4.351 + <string>CSS:</string>
4.352 + </property>
4.353 + <property name="alignment">
4.354 + <set>AlignVCenter|AlignRight</set>
4.355 + </property>
4.356 + </widget>
4.357 + <widget class="QLineEdit">
4.358 + <property name="name">
4.359 + <cstring>lineEditCSS</cstring>
4.360 + </property>
4.361 + </widget>
4.362 + <widget class="QPushButton">
4.363 + <property name="name">
4.364 + <cstring>browseCSSButton</cstring>
4.365 + </property>
4.366 + <property name="sizePolicy">
4.367 + <sizepolicy>
4.368 + <hsizetype>0</hsizetype>
4.369 + <vsizetype>0</vsizetype>
4.370 + <horstretch>0</horstretch>
4.371 + <verstretch>0</verstretch>
4.372 + </sizepolicy>
4.373 + </property>
4.374 + <property name="text">
4.375 + <string>Browse</string>
4.376 + </property>
4.377 + </widget>
4.378 + </hbox>
4.379 </widget>
4.380 </grid>
4.381 </widget>
4.382 - <spacer>
4.383 + <widget class="QGroupBox" row="3" column="0">
4.384 + <property name="name">
4.385 + <cstring>groupBox1</cstring>
4.386 + </property>
4.387 + <property name="title">
4.388 + <string>Scripts</string>
4.389 + </property>
4.390 + <grid>
4.391 + <property name="name">
4.392 + <cstring>unnamed</cstring>
4.393 + </property>
4.394 + <widget class="QLayoutWidget" row="0" column="0">
4.395 + <property name="name">
4.396 + <cstring>layout4</cstring>
4.397 + </property>
4.398 + <hbox>
4.399 + <property name="name">
4.400 + <cstring>unnamed</cstring>
4.401 + </property>
4.402 + <widget class="QLabel">
4.403 + <property name="name">
4.404 + <cstring>textLabel1_3</cstring>
4.405 + </property>
4.406 + <property name="sizePolicy">
4.407 + <sizepolicy>
4.408 + <hsizetype>0</hsizetype>
4.409 + <vsizetype>5</vsizetype>
4.410 + <horstretch>0</horstretch>
4.411 + <verstretch>0</verstretch>
4.412 + </sizepolicy>
4.413 + </property>
4.414 + <property name="minimumSize">
4.415 + <size>
4.416 + <width>125</width>
4.417 + <height>0</height>
4.418 + </size>
4.419 + </property>
4.420 + <property name="text">
4.421 + <string>Before export:</string>
4.422 + </property>
4.423 + <property name="alignment">
4.424 + <set>AlignVCenter|AlignRight</set>
4.425 + </property>
4.426 + </widget>
4.427 + <widget class="QLineEdit">
4.428 + <property name="name">
4.429 + <cstring>lineEditPostScript</cstring>
4.430 + </property>
4.431 + </widget>
4.432 + <widget class="QPushButton">
4.433 + <property name="name">
4.434 + <cstring>browsePreExportButton</cstring>
4.435 + </property>
4.436 + <property name="sizePolicy">
4.437 + <sizepolicy>
4.438 + <hsizetype>0</hsizetype>
4.439 + <vsizetype>0</vsizetype>
4.440 + <horstretch>0</horstretch>
4.441 + <verstretch>0</verstretch>
4.442 + </sizepolicy>
4.443 + </property>
4.444 + <property name="text">
4.445 + <string>Browse</string>
4.446 + </property>
4.447 + </widget>
4.448 + </hbox>
4.449 + </widget>
4.450 + <widget class="QLayoutWidget" row="1" column="0">
4.451 + <property name="name">
4.452 + <cstring>layout5</cstring>
4.453 + </property>
4.454 + <hbox>
4.455 + <property name="name">
4.456 + <cstring>unnamed</cstring>
4.457 + </property>
4.458 + <widget class="QLabel">
4.459 + <property name="name">
4.460 + <cstring>textLabel2_2</cstring>
4.461 + </property>
4.462 + <property name="sizePolicy">
4.463 + <sizepolicy>
4.464 + <hsizetype>0</hsizetype>
4.465 + <vsizetype>5</vsizetype>
4.466 + <horstretch>0</horstretch>
4.467 + <verstretch>0</verstretch>
4.468 + </sizepolicy>
4.469 + </property>
4.470 + <property name="minimumSize">
4.471 + <size>
4.472 + <width>125</width>
4.473 + <height>0</height>
4.474 + </size>
4.475 + </property>
4.476 + <property name="frameShape">
4.477 + <enum>NoFrame</enum>
4.478 + </property>
4.479 + <property name="text">
4.480 + <string>After Export:</string>
4.481 + </property>
4.482 + <property name="alignment">
4.483 + <set>AlignVCenter|AlignRight</set>
4.484 + </property>
4.485 + </widget>
4.486 + <widget class="QLineEdit">
4.487 + <property name="name">
4.488 + <cstring>lineEditPreScript</cstring>
4.489 + </property>
4.490 + </widget>
4.491 + <widget class="QPushButton">
4.492 + <property name="name">
4.493 + <cstring>browsePostExportButton</cstring>
4.494 + </property>
4.495 + <property name="sizePolicy">
4.496 + <sizepolicy>
4.497 + <hsizetype>0</hsizetype>
4.498 + <vsizetype>0</vsizetype>
4.499 + <horstretch>0</horstretch>
4.500 + <verstretch>0</verstretch>
4.501 + </sizepolicy>
4.502 + </property>
4.503 + <property name="text">
4.504 + <string>Browse</string>
4.505 + </property>
4.506 + </widget>
4.507 + </hbox>
4.508 + </widget>
4.509 + </grid>
4.510 + </widget>
4.511 + <spacer row="4" column="0">
4.512 <property name="name">
4.513 <cstring>spacer3</cstring>
4.514 </property>
4.515 @@ -336,62 +462,16 @@
4.516 <enum>Vertical</enum>
4.517 </property>
4.518 <property name="sizeType">
4.519 - <enum>Expanding</enum>
4.520 + <enum>MinimumExpanding</enum>
4.521 </property>
4.522 <property name="sizeHint">
4.523 <size>
4.524 <width>20</width>
4.525 - <height>60</height>
4.526 + <height>20</height>
4.527 </size>
4.528 </property>
4.529 </spacer>
4.530 - <widget class="QLayoutWidget">
4.531 - <property name="name">
4.532 - <cstring>layout17</cstring>
4.533 - </property>
4.534 - <hbox>
4.535 - <property name="name">
4.536 - <cstring>unnamed</cstring>
4.537 - </property>
4.538 - <spacer>
4.539 - <property name="name">
4.540 - <cstring>spacer5</cstring>
4.541 - </property>
4.542 - <property name="orientation">
4.543 - <enum>Horizontal</enum>
4.544 - </property>
4.545 - <property name="sizeType">
4.546 - <enum>Expanding</enum>
4.547 - </property>
4.548 - <property name="sizeHint">
4.549 - <size>
4.550 - <width>61</width>
4.551 - <height>21</height>
4.552 - </size>
4.553 - </property>
4.554 - </spacer>
4.555 - <widget class="QPushButton">
4.556 - <property name="name">
4.557 - <cstring>exportButton</cstring>
4.558 - </property>
4.559 - <property name="text">
4.560 - <string>Export</string>
4.561 - </property>
4.562 - <property name="default">
4.563 - <bool>true</bool>
4.564 - </property>
4.565 - </widget>
4.566 - <widget class="QPushButton">
4.567 - <property name="name">
4.568 - <cstring>cancelButton</cstring>
4.569 - </property>
4.570 - <property name="text">
4.571 - <string>Cancel</string>
4.572 - </property>
4.573 - </widget>
4.574 - </hbox>
4.575 - </widget>
4.576 - </vbox>
4.577 + </grid>
4.578 </widget>
4.579 <connections>
4.580 <connection>
5.1 --- a/linkablemapobj.cpp Wed Jul 13 11:36:15 2005 +0000
5.2 +++ b/linkablemapobj.cpp Tue Jul 19 14:44:30 2005 +0000
5.3 @@ -536,7 +536,6 @@
5.4 part=s.section(",",0,0);
5.5 typ=part.left (3);
5.6 num=part.right(part.length() - 3);
5.7 -
5.8 if (typ=="mc:")
5.9 {
5.10 if (depth>0)
6.1 --- a/mainwindow.cpp Wed Jul 13 11:36:15 2005 +0000
6.2 +++ b/mainwindow.cpp Tue Jul 19 14:44:30 2005 +0000
6.3 @@ -1861,7 +1861,7 @@
6.4 {
6.5 QMessageBox::information( findWindow, tr( "VYM -Information:" ),
6.6 tr("No matches found for ")+
6.7 - "'<b>"+s+"</b>'");
6.8 + "<b>"+s+"</b>");
6.9 }
6.10 }
6.11
7.1 --- a/mapeditor.cpp Wed Jul 13 11:36:15 2005 +0000
7.2 +++ b/mapeditor.cpp Tue Jul 19 14:44:30 2005 +0000
7.3 @@ -18,6 +18,7 @@
7.4 #include <qdragobject.h>
7.5 #include <qurloperator.h>
7.6 #include <qnetworkprotocol.h>
7.7 +#include <qregexp.h>
7.8
7.9 #include <iostream>
7.10 #include <cstdlib>
7.11 @@ -611,37 +612,93 @@
7.12 */
7.13 }
7.14
7.15 -void MapEditor::parseAtom(const QString &s)
7.16 +void MapEditor::parseAtom(const QString &atom)
7.17 {
7.18 API api;
7.19 - QString c,p,p0;
7.20 - api.parseCommand (s,c,p);
7.21 - api.getString(p,p0);
7.22 - /* FIXME testing
7.23 - cout <<"ME::parseAtom s="<<s<<endl;
7.24 - cout <<"ME::parseAtom c="<<c<<endl;
7.25 - cout <<"ME::parseAtom p="<<p<<endl;
7.26 - */
7.27 -
7.28 + QString s;
7.29 + int x,y;
7.30 + bool ok;
7.31 +
7.32 + // Split string s into command and parameters
7.33 + api.parseCommand (atom);
7.34 + QString com=api.command();
7.35 +
7.36 // External commands
7.37 - if (c==QString("moveBranchUp"))
7.38 + if (com==QString("moveBranchUp"))
7.39 moveBranchUp();
7.40 - else if (c=="moveBranchDown")
7.41 + else if (com=="moveBranchDown")
7.42 moveBranchDown();
7.43 - else if (c=="setHeading")
7.44 - setHeading (p0);
7.45 + else if (com=="move")
7.46 + {
7.47 + if (api.checkParamCount(2) &&
7.48 + selection &&
7.49 + typeid(*selection) == typeid(BranchObj) )
7.50 + {
7.51 + x=api.parInt (ok,0);
7.52 + if (ok)
7.53 + {
7.54 + y=api.parInt (ok,1);
7.55 + if (ok) ((BranchObj*)(selection))->move (x,y);
7.56 + }
7.57 + }
7.58 + }
7.59 + else if (com=="linkBranchToPos")
7.60 + {
7.61 + if (selection && typeid(*selection) == typeid(BranchObj) )
7.62 + {
7.63 + if (api.checkParamCount(4))
7.64 + {
7.65 + s=api.parString(ok,0);
7.66 + LinkableMapObj *dst=mapCenter->findObjBySelect (s);
7.67 + if (dst)
7.68 + {
7.69 + if (typeid(*dst) == typeid(BranchObj) )
7.70 + ((BranchObj*)(selection))->moveBranchTo ((BranchObj*)(dst),-1);
7.71 + if (typeid(*dst) == typeid(MapCenterObj) )
7.72 + {
7.73 + ((BranchObj*)(selection))->moveBranchTo ((BranchObj*)(dst),-1);
7.74 + x=api.parInt (ok,2);
7.75 + if (ok)
7.76 + {
7.77 + y=api.parInt (ok,3);
7.78 + if (ok) ((BranchObj*)(selection))->move (x,y);
7.79 + }
7.80 + }
7.81 + }
7.82 + }
7.83 + }
7.84 + } else if (com=="setHeading")
7.85 + {
7.86 + if (api.checkParamCount(1))
7.87 + {
7.88 + s=api.parString (ok,0);
7.89 + if (ok) setHeading (s);
7.90 + }
7.91 + }
7.92 // Internal commands, used for undo etc.
7.93 - else if (c==QString("undoMap"))
7.94 + else if (com==QString("undoMap"))
7.95 undoXML("");
7.96 - else if (c==QString("undoPart"))
7.97 - undoXML(p0);
7.98 - else if (c=="select")
7.99 - select (p0);
7.100 + else if (com==QString("undoPart"))
7.101 + {
7.102 + if (api.checkParamCount(1))
7.103 + {
7.104 + s=api.parString (ok,0);
7.105 + undoXML(s);
7.106 + }
7.107 + } else if (com=="select")
7.108 + if (api.checkParamCount(1))
7.109 + {
7.110 + s=api.parString(ok,0);
7.111 + if (ok) select (s);
7.112 + }
7.113 else
7.114 + api.setError ("Unknown command in: "+atom);
7.115 +
7.116 + // Any errors?
7.117 + if (api.error())
7.118 {
7.119 cout << "MapEditor::parseAtom: Error!\n";
7.120 - cout << " Command unknown: \""<<c<<"\""<<endl;
7.121 - cout << " Used in atom: \""<<s<<"\""<<endl;
7.122 + cout << " "<<api.errorDesc()<<endl;
7.123 }
7.124 }
7.125
7.126 @@ -1233,11 +1290,13 @@
7.127 if (lineedit) finishedLineEditNoSave();
7.128
7.129 // Unselect
7.130 + /*FIXME testing
7.131 if (selection)
7.132 {
7.133 selection->unselect();
7.134 selection=NULL;
7.135 }
7.136 + */
7.137
7.138 parseAtom (undoCommand);
7.139 mapCenter->reposition();
7.140 @@ -1415,6 +1474,21 @@
7.141 }
7.142 }
7.143
7.144 +void MapEditor::linkBranchToPos (LinkableMapObj *dst, const int &pos, const QPoint &p)
7.145 +{
7.146 + // FIXME no saveState, because this is only internal at undo so far
7.147 + if (selection && typeid(*selection) == typeid(BranchObj) )
7.148 + {
7.149 + if (dst && typeid(*dst) == typeid(BranchObj) )
7.150 + ((BranchObj*)(selection))->moveBranchTo ((BranchObj*)(dst),-1);
7.151 + if (dst && typeid(*dst) == typeid(MapCenterObj) )
7.152 + {
7.153 + ((BranchObj*)(selection))->moveBranchTo ((BranchObj*)(dst),-1);
7.154 + ((BranchObj*)(selection))->move (p);
7.155 + }
7.156 + }
7.157 +}
7.158 +
7.159 void MapEditor::editHeading()
7.160 {
7.161 // Finish open lineEdits
7.162 @@ -3006,7 +3080,6 @@
7.163 selection->select();
7.164
7.165 adjustCanvasSize();
7.166 -
7.167 }
7.168
7.169 // Check, if systemFlag clicked
7.170 @@ -3035,6 +3108,11 @@
7.171 // Left Button Move Branches
7.172 if (e->button() == QMouseEvent::LeftButton )
7.173 {
7.174 + movingObj_start.setX( p.x() - selection->x() );
7.175 + movingObj_start.setY( p.y() - selection->y() );
7.176 + movingObj_orgPos.setX (lmo->x() );
7.177 + movingObj_orgPos.setY (lmo->y() );
7.178 +
7.179 // If modMode==copy, then we want to "move" the _new_ object around
7.180 // then we need the offset from p to the _old_ selection, because of tmp
7.181 if (actionModModeCopy->isOn() &&
7.182 @@ -3043,20 +3121,13 @@
7.183 if (typeid(*selection)==typeid(BranchObj) )
7.184 {
7.185 copyingObj=true;
7.186 - movingObj_start.setX( p.x() - selection->x() );
7.187 - movingObj_start.setY( p.y() - selection->y() );
7.188 mapCenter->addBranch ((BranchObj*)(selection));
7.189 unselect();
7.190 selection=mapCenter->getLastBranch();
7.191 selection->select();
7.192 mapCenter->reposition();
7.193 }
7.194 - } else
7.195 - {
7.196 - movingObj_start.setX( p.x() - selection->x() );
7.197 - movingObj_start.setY( p.y() - selection->y() );
7.198 - }
7.199 -
7.200 + }
7.201 movingObj=selection;
7.202 } else
7.203 // Middle Button Toggle Scroll
7.204 @@ -3137,7 +3208,6 @@
7.205 // setLinkStyle calls updateLink, only set it once
7.206 if (fio->getLinkStyle()!=fio->getDefLinkStyle() )
7.207 fio->setLinkStyle (fio->getDefLinkStyle());
7.208 -
7.209 }
7.210 // TODO if (typeid(*selection) == typeid(FloatTextObj))
7.211 }
7.212 @@ -3156,7 +3226,7 @@
7.213 {
7.214 // depth==1, mainbranch
7.215 setChanged();
7.216 - saveState(lmosel);
7.217 + saveState("move "+qpointToString(movingObj_orgPos));
7.218 lmosel->move(p.x() -movingObj_start.x(), p.y()-movingObj_start.y() );
7.219 } else
7.220 {
7.221 @@ -3299,50 +3369,34 @@
7.222
7.223
7.224 copyingObj=false;
7.225 - if (!dst )
7.226 + if (dst )
7.227 {
7.228 - if (copyingObj)
7.229 - {
7.230 - // remove the current selection, if we have no destination
7.231 - selection->unselect();
7.232 - ((BranchObj*)(selection->getParObj()))->removeBranch ((BranchObj*)(selection));
7.233 - if (selectionLast)
7.234 - {
7.235 - selection=selectionLast;
7.236 - selectionLast=NULL;
7.237 - selection->select();
7.238 - }
7.239 - }
7.240 - } else
7.241 - {
7.242 + BranchObj* bs=((BranchObj*)(selection));
7.243 setChanged();
7.244 - saveState();
7.245 + saveState ("linkBranchToPos (\""+
7.246 + (bs->getParObj())->getSelectString()+
7.247 + "\","+
7.248 + QString("%1").arg(bs->getNum())+
7.249 + ","+
7.250 + QString ("%1,%2").arg(movingObj_orgPos.x()).arg(movingObj_orgPos.y())+
7.251 + ")");
7.252 // TODO we also could check, if dest and src are on same branch,
7.253 // then it would be sufficient to saveState of this branch
7.254
7.255 // Modifiers allow to insert above/below dst
7.256 if (e->state() & QMouseEvent::ShiftButton)
7.257 {
7.258 - ((BranchObj*)(selection))->moveBranchTo
7.259 - (
7.260 - (BranchObj*)(dst),
7.261 - ((BranchObj*)(dst))->getNum()
7.262 - );
7.263 - //if (selection) selection->select();
7.264 + bs->moveBranchTo ( (BranchObj*)(dst), ((BranchObj*)(dst))->getNum());
7.265 } else
7.266 if (e->state() & QMouseEvent::ControlButton)
7.267 {
7.268 - ((BranchObj*)(selection))->moveBranchTo
7.269 - (
7.270 - (BranchObj*)(dst),
7.271 - ((BranchObj*)(dst))->getNum()+1
7.272 - );
7.273 - //if (selection) selection->select();
7.274 + bs->moveBranchTo ( (BranchObj*)(dst), ((BranchObj*)(dst))->getNum()+1);
7.275 } else
7.276 {
7.277 - ((BranchObj*)(selection))->moveBranchTo ((BranchObj*)(dst),-1);
7.278 + bs->moveBranchTo ((BranchObj*)(dst),-1);
7.279 if (dst->getDepth()==0)
7.280 - ((BranchObj*)(selection))->move (savePos);
7.281 + bs->move (savePos);
7.282 + cout << "ME::release start was: "<<movingObj_orgPos<<endl;
7.283 }
7.284 }
7.285 // Draw the original link, before selection was moved around
7.286 @@ -3390,6 +3444,10 @@
7.287
7.288 void MapEditor::contentsDragEnterEvent(QDragEnterEvent *event)
7.289 {
7.290 +
7.291 +// for (unsigned int i=0;event->format(i);i++) // Debug mime type
7.292 +// cerr << event->format(i) << endl;
7.293 +
7.294 if (selection &&
7.295 (typeid(*selection) == typeid(BranchObj)) ||
7.296 (typeid(*selection) == typeid(MapCenterObj))) {
7.297 @@ -3414,13 +3472,30 @@
7.298 }
7.299
7.300 // If Uri are dragged from firefox
7.301 - if (event->provides("text/x-moz-url") ){
7.302 + if (event->provides("_NETSCAPE_URL")){
7.303 event->accept();
7.304 return;
7.305 }
7.306 +
7.307 + // If QTextDrag can decode mime type
7.308 + if (QTextDrag::canDecode(event)) {
7.309 + event->accept();
7.310 + return;
7.311 + }
7.312 +
7.313 }
7.314 event->ignore();
7.315 }
7.316 +
7.317 +bool isUnicode16(const QByteArray &d)
7.318 +{
7.319 + // FIXME: make more precise check for unicode 16.
7.320 + // Guess unicode16 if any of second bytes are zero
7.321 + unsigned int length = max(0,d.size()-2)/2;
7.322 + for (unsigned int i = 0; i<length ; i++)
7.323 + if (d.at(i*2+1)==0) return true;
7.324 + return false;
7.325 +}
7.326
7.327 void MapEditor::contentsDropEvent(QDropEvent *event)
7.328 {
7.329 @@ -3430,6 +3505,7 @@
7.330 {
7.331 bool update=false;
7.332 QStrList uris;
7.333 + QString heading;
7.334 if (event->provides("image/png"))
7.335 {
7.336 QPixmap pix;
7.337 @@ -3444,7 +3520,7 @@
7.338 } else if (event->provides("application/x-moz-file-promise-url") &&
7.339 event->provides("application/x-moz-nativeimage"))
7.340 {
7.341 - // Contains url to the img src in UTF-16
7.342 + // Contains url to the img src in unicode16
7.343 QByteArray d = event->encodedData("application/x-moz-file-promise-url");
7.344 QString url = QString((const QChar*)d.data(),d.size()/2);
7.345 fetchImage(url);
7.346 @@ -3453,14 +3529,40 @@
7.347 } else if (event->provides ("text/uri-list"))
7.348 { // Uris provided e.g. by konqueror
7.349 QUriDrag::decode (event,uris);
7.350 - } else if (event->provides ("text/x-moz-url-data"))
7.351 + } else if (event->provides ("_NETSCAPE_URL"))
7.352 { // Uris provided by Mozilla
7.353 - QString str;
7.354 - QTextDrag::decode (event,str);
7.355 - uris.append(str);
7.356 + QStringList l = QStringList::split("\n", event->encodedData("_NETSCAPE_URL"));
7.357 + uris.append(l[0]);
7.358 + heading = l[1];
7.359 + } else if (event->provides("text/html")) {
7.360 +
7.361 + // Handels text mime types
7.362 + // Look like firefox allways handle text as unicode16 (2 bytes per char.)
7.363 + QByteArray d = event->encodedData("text/html");
7.364 + QString text;
7.365 + if (isUnicode16(d))
7.366 + text = QString((const QChar*)d.data(),d.size()/2);
7.367 + else
7.368 + text = QString(d);
7.369 +
7.370 + textEditor->setText(text);
7.371 +
7.372 + event->accept();
7.373 + update=true;
7.374 + } else if (event->provides("text/plain")) {
7.375 + QByteArray d = event->encodedData("text/plain");
7.376 + QString text;
7.377 + if (isUnicode16(d))
7.378 + text = QString((const QChar*)d.data(),d.size()/2);
7.379 + else
7.380 + text = QString(d);
7.381 +
7.382 + textEditor->setText(text);
7.383 +
7.384 + event->accept();
7.385 + update= true;
7.386 }
7.387
7.388 -
7.389 if (uris.count()>0)
7.390 {
7.391 QStringList files;
7.392 @@ -3473,12 +3575,23 @@
7.393 if (bo)
7.394 {
7.395 s=QUriDrag::uriToLocalFile(u);
7.396 - if (s)
7.397 - files.append(QDir::convertSeparators(s));
7.398 - else
7.399 - urls.append (u);
7.400 - bo->setHeading(u);
7.401 - bo->setURL (u);
7.402 + if (s) {
7.403 + QString file = QDir::convertSeparators(s);
7.404 + heading = QFileInfo(file).baseName();
7.405 + files.append(file);
7.406 + if (file.endsWith(".vym", false))
7.407 + bo->setVymLink(file);
7.408 + else
7.409 + bo->setURL(u);
7.410 + } else {
7.411 + urls.append (u);
7.412 + bo->setURL(u);
7.413 + }
7.414 +
7.415 + if (heading)
7.416 + bo->setHeading(heading);
7.417 + else
7.418 + bo->setHeading(u);
7.419 }
7.420 }
7.421 update=true;
7.422 @@ -3486,6 +3599,7 @@
7.423
7.424 if (update)
7.425 {
7.426 + setChanged();
7.427 mapCenter->reposition();
7.428 adjustCanvasSize();
7.429 canvas()->update();
7.430 @@ -3515,8 +3629,7 @@
7.431 }
7.432
7.433
7.434 -void
7.435 -MapEditor::imageDataFetched(const QByteArray &a, QNetworkOperation */*nop*/)
7.436 +void MapEditor::imageDataFetched(const QByteArray &a, QNetworkOperation */*nop*/)
7.437 {
7.438 if (!imageBuffer) imageBuffer = new QBuffer();
7.439 if (!imageBuffer->isOpen()) {
7.440 @@ -3526,21 +3639,24 @@
7.441 }
7.442
7.443
7.444 -void
7.445 -MapEditor::imageDataFinished(QNetworkOperation *nop)
7.446 +void MapEditor::imageDataFinished(QNetworkOperation *nop)
7.447 {
7.448 - imageBuffer->close();
7.449 - if (nop->state()==QNetworkProtocol::StDone) {
7.450 - QPixmap img(imageBuffer->buffer());
7.451 - addFloatImage(img);
7.452 - }
7.453 -
7.454 - delete imageBuffer;
7.455 - imageBuffer = 0;
7.456 + if (nop->state()==QNetworkProtocol::StDone) {
7.457 + QPixmap img(imageBuffer->buffer());
7.458 + addFloatImage(img);
7.459 + }
7.460 +
7.461 + if (imageBuffer) {
7.462 + imageBuffer->close();
7.463 + if (imageBuffer) {
7.464 + imageBuffer->close();
7.465 + delete imageBuffer;
7.466 + imageBuffer = 0;
7.467 + }
7.468 + }
7.469 }
7.470
7.471 -void
7.472 -MapEditor::fetchImage(const QString &url)
7.473 +void MapEditor::fetchImage(const QString &url)
7.474 {
7.475 if (urlOperator) {
7.476 urlOperator->stop();
8.1 --- a/mapeditor.h Wed Jul 13 11:36:15 2005 +0000
8.2 +++ b/mapeditor.h Tue Jul 19 14:44:30 2005 +0000
8.3 @@ -84,6 +84,7 @@
8.4 void cut(); // cut to clipboard and backup
8.5 void moveBranchUp();
8.6 void moveBranchDown();
8.7 + void linkBranchToPos(LinkableMapObj*,const int &, const QPoint &);// move selection to dst and pos
8.8 void editHeading(); // Start editing heading
8.9 private:
8.10 void setHeading(const QString &); // Just set the heading for selection
8.11 @@ -190,6 +191,7 @@
8.12 LinkableMapObj* selectionLast; // last selection
8.13 MapObj* movingObj; // moving a MapObj
8.14 MapObj* linkingObj_src; // part of a link
8.15 + QPoint movingObj_orgPos; // org. pos of mouse before move
8.16 QPoint movingObj_start; // rel. pos of mouse to absPos
8.17 QPoint movingCont_start; // inital pos of moving Content or
8.18 QPoint movingVec; // how far has Content moved
9.1 --- a/mapobj.cpp Wed Jul 13 11:36:15 2005 +0000
9.2 +++ b/mapobj.cpp Tue Jul 19 14:44:30 2005 +0000
9.3 @@ -1,4 +1,5 @@
9.4 #include "mapobj.h"
9.5 +#include "misc.h"
9.6
9.7 /////////////////////////////////////////////////////////////////
9.8 // MapObj
9.9 @@ -70,6 +71,11 @@
9.10 return bbox.height();
9.11 }
9.12
9.13 +QString MapObj::getPos()
9.14 +{
9.15 + return qpointToString(absPos);
9.16 +}
9.17 +
9.18 void MapObj::move (double x, double y)
9.19 {
9.20 int xi=static_cast <int> (x);
10.1 --- a/mapobj.h Wed Jul 13 11:36:15 2005 +0000
10.2 +++ b/mapobj.h Tue Jul 19 14:44:30 2005 +0000
10.3 @@ -9,6 +9,7 @@
10.4 using namespace std;
10.5
10.6 #define Z_BBOX 0
10.7 +#define Z_XLINK 10
10.8 #define Z_LINK 20
10.9 #define Z_FRAME 50
10.10 #define Z_SELBOX 60
10.11 @@ -28,6 +29,7 @@
10.12 virtual int y();
10.13 virtual int width();
10.14 virtual int height();
10.15 + virtual QString getPos(); // Return position as string (x,y)
10.16 virtual void move (double x,double y); // move to absolute Position
10.17 virtual void moveBy (double x,double y); // move to relative Position
10.18 virtual bool inBBox(QPoint); // Check if Point is in bbox
11.1 --- a/misc.cpp Wed Jul 13 11:36:15 2005 +0000
11.2 +++ b/misc.cpp Tue Jul 19 14:44:30 2005 +0000
11.3 @@ -3,10 +3,14 @@
11.4
11.5 #include "misc.h"
11.6
11.7 +QString qpointToString (const QPoint &p)
11.8 +{
11.9 + return "(" + QString("%1").arg(p.x()) +","+ QString ("%1").arg (p.y()) +")";
11.10 +}
11.11
11.12 ostream &operator<< (ostream &stream, QPoint const &p)
11.13 {
11.14 - return (stream << "(" << p.x() << "," << p.y() << ")");
11.15 + return (stream << qpointToString(p) );
11.16 }
11.17
11.18 float getAngle(const QPoint &p)
12.1 --- a/misc.h Wed Jul 13 11:36:15 2005 +0000
12.2 +++ b/misc.h Tue Jul 19 14:44:30 2005 +0000
12.3 @@ -6,18 +6,11 @@
12.4
12.5 using namespace std;
12.6
12.7 -#define Z_BBOX 0
12.8 -#define Z_XLINK 10
12.9 -#define Z_LINK 20
12.10 -#define Z_FRAME 50
12.11 -#define Z_SELBOX 60
12.12 -#define Z_ICON 80
12.13 -#define Z_TEXT 100
12.14 -
12.15 enum LoadMode {NewMap,ImportAdd,ImportReplace};
12.16 enum SaveMode {PartOfMap,CompleteMap,UndoCommand};
12.17
12.18 /////////////////////////////////////////////////////////////////////////////
12.19 +QString qpointToString (const QPoint &p);
12.20 extern ostream &operator<< (ostream &stream, QPoint const &p);
12.21 float getAngle(const QPoint &);
12.22 QPoint normalise (const QPoint &);
13.1 --- a/version.h Wed Jul 13 11:36:15 2005 +0000
13.2 +++ b/version.h Tue Jul 19 14:44:30 2005 +0000
13.3 @@ -1,7 +1,7 @@
13.4 #ifndef VERSION_H
13.5 #define VERSION_H
13.6
13.7 -#define __VYM_VERSION__ "1.7.0"
13.8 -#define __BUILD_DATE__ "July 13, 2005"
13.9 +#define __VYM_VERSION__ "1.7.1"
13.10 +#define __BUILD_DATE__ "July 19, 2005"
13.11
13.12 #endif