1 #pragma once 2 3 #ifndef XSHEETVIEWER_H 4 #define XSHEETVIEWER_H 5 6 #include <QFrame> 7 #include <QScrollArea> 8 #include <QKeyEvent> 9 #include "xshcellviewer.h" 10 #include "xshcolumnviewer.h" 11 #include "xshrowviewer.h" 12 #include "xshnoteviewer.h" 13 #include "xshtoolbar.h" 14 #include "layerfooterpanel.h" 15 #include "cellkeyframeselection.h" 16 #include "saveloadqsettings.h" 17 #include "toonzqt/spreadsheetviewer.h" 18 #include "orientation.h" 19 #include <boost/optional.hpp> 20 21 using boost::optional; 22 23 #define XSHEET_FONT_PX_SIZE 12 24 #define H_ADJUST 2 25 26 // forward declaration 27 class TXsheet; 28 class TCellSelection; 29 class TKeyframeSelection; 30 class TColumnSelection; 31 class TSelection; 32 class TXshCell; 33 class TStageObjectId; 34 35 enum TXshButtonType { 36 PREVIEW_ON_XSHBUTTON = 1, 37 PREVIEW_OFF_XSHBUTTON, 38 CAMSTAND_ON_XSHBUTTON, 39 CAMSTAND_OFF_XSHBUTTON, 40 CAMSTAND_TRANSP_XSHBUTTON, 41 LOCK_ON_XSHBUTTON, 42 LOCK_OFF_XSHBUTTON, 43 CONFIG_XSHBUTTON 44 }; 45 46 namespace XsheetGUI { 47 48 //============================================================================= 49 // Constant definition 50 //----------------------------------------------------------------------------- 51 52 extern const int ColumnWidth; 53 extern const int RowHeight; 54 55 const int NoteWidth = 70; 56 const int NoteHeight = 18; 57 58 // TZP column 59 const QColor LevelColumnColor(127, 219, 127); 60 const QColor LevelColumnBorderColor(47, 82, 47); 61 const QColor SelectedLevelColumnColor(191, 237, 191); 62 63 // PLI column 64 const QColor VectorColumnColor(212, 212, 133); 65 const QColor VectorColumnBorderColor(79, 79, 49); 66 const QColor SelectedVectorColumnColor(234, 234, 194); 67 68 // SubXsheet column 69 const QColor ChildColumnColor(214, 154, 219); 70 const QColor ChildColumnBorderColor(80, 57, 82); 71 const QColor SelectedChildColumnColor(235, 205, 237); 72 73 // Raster image column 74 const QColor FullcolorColumnColor(154, 214, 219); 75 const QColor FullcolorColumnBorderColor(57, 80, 82); 76 const QColor SelectedFullcolorColumnColor(205, 235, 237); 77 78 // Palette column 79 const QColor PaletteColumnColor(42, 171, 154); 80 const QColor PaletteColumnBorderColor(15, 62, 56); 81 const QColor SelectedPaletteColumnColor(146, 221, 202); 82 83 // Fx column 84 const QColor FxColumnColor(130, 129, 93); 85 const QColor FxColumnBorderColor(48, 48, 35); 86 const QColor SelectedFxColumnColor(193, 192, 174); 87 88 // Reference column 89 const QColor ReferenceColumnColor(171, 171, 171); 90 const QColor ReferenceColumnBorderColor(62, 62, 62); 91 const QColor SelectedReferenceColumnColor(213, 213, 213); 92 93 // Sound column 94 const QColor SoundColumnColor(175, 185, 115); 95 const QColor SoundColumnBorderColor(110, 130, 90); 96 const QColor SelectedSoundColumnColor(215, 215, 180); 97 98 const QColor SoundColumnHlColor(245, 255, 230); 99 const QColor SoundColumnTrackColor(90, 100, 45); 100 101 const QColor SoundColumnExtenderColor(235, 255, 115); 102 103 const QColor EmptySoundColumnColor(240, 255, 240); 104 105 const QColor ColorSelection(190, 210, 240, 170); 106 107 const QColor SoundTextColumnColor(200, 200, 200); 108 const QColor SoundTextColumnBorderColor(140, 140, 140); 109 110 const QColor MeshColumnColor(200, 130, 255); 111 const QColor MeshColumnBorderColor(105, 70, 135); 112 const QColor SelectedMeshColumnColor(216, 180, 245); 113 114 // Empty column 115 const QColor EmptyColumnColor(124, 124, 124); 116 // Occupied column 117 const QColor NotEmptyColumnColor(164, 164, 164); 118 119 const QColor SelectedEmptyCellColor(210, 210, 210); 120 const QColor SmartTabColor(255, 255, 255, 150); 121 122 const QColor XsheetBGColor(212, 208, 200); 123 // Xsheet horizontal lines 124 const QColor NormalHLineColor(146, 144, 146); 125 const QColor IntervalHLineColor(0, 255, 246); 126 127 // column header 128 const QColor EmptyColumnHeadColor(200, 200, 200); 129 const QColor MaskColumnHeadColor(233, 118, 116); 130 // const QColor PreviewVisibleColor(200, 200, 100); 131 // const QColor CamStandVisibleColor(235, 144, 107); 132 133 const QColor XsheetColumnNameBgColor(255, 255, 255, 90); 134 const QColor XsheetDragBarHighlightColor(255, 255, 187, 255); 135 136 const QColor XsheetPreviewButtonBgOnColor(200, 200, 100, 255); 137 const QColor XsheetPreviewButtonBgOffColor(255, 255, 255, 0); 138 139 const QColor XsheetCamstandButtonBgOnColor(235, 144, 107, 255); 140 const QColor XsheetCamstandButtonBgOffColor(255, 255, 255, 0); 141 142 const QColor XsheetLockButtonBgOnColor(255, 255, 255, 0); 143 const QColor XsheetLockButtonBgOffColor(255, 255, 255, 0); 144 145 const QColor XsheetConfigButtonBgColor(255, 255, 255, 0); 146 147 const QColor TimelineButtonBgOnColor(255, 255, 255, 0); 148 const QColor TimelineButtonBgOffColor(255, 255, 255, 0); 149 150 const QColor TimelineConfigButtonBgColor(255, 255, 255, 0); 151 152 // RowArea 153 const QColor RowAreaBGColor(164, 164, 164); 154 const QColor CurrentFrameBGColor(210, 210, 210); 155 156 } // namespace XsheetGUI 157 158 //============================================================================= 159 // XsheetScrollArea 160 //----------------------------------------------------------------------------- 161 162 class XsheetScrollArea final : public QScrollArea { 163 Q_OBJECT 164 165 public: 166 #if QT_VERSION >= 0x050500 167 XsheetScrollArea(QWidget *parent = 0, Qt::WindowFlags flags = 0) 168 #else 169 XsheetScrollArea(QWidget *parent = 0, Qt::WFlags flags = 0) 170 #endif QScrollArea(parent)171 : QScrollArea(parent) { 172 setObjectName("xsheetScrollArea"); 173 setFrameStyle(QFrame::StyledPanel); 174 } ~XsheetScrollArea()175 ~XsheetScrollArea() {} 176 177 protected: keyPressEvent(QKeyEvent * event)178 void keyPressEvent(QKeyEvent *event) override { event->ignore(); } wheelEvent(QWheelEvent * event)179 void wheelEvent(QWheelEvent *event) override { event->ignore(); } 180 }; 181 182 //============================================================================= 183 // XsheetViewer 184 //----------------------------------------------------------------------------- 185 186 //! Note: some refactoring is needed. XsheetViewer is going to derive from 187 //! SpreadsheetViewer. 188 189 class XsheetViewer final : public QFrame, public SaveLoadQSettings { 190 Q_OBJECT 191 192 QColor m_lightLightBgColor; 193 QColor m_lightBgColor; 194 QColor m_bgColor; // row area backgroound 195 QColor m_darkBgColor; 196 QColor m_lightLineColor; // horizontal lines (146,144,146) 197 QColor m_darkLineColor; 198 QColor m_columnIconLineColor; 199 QColor m_timelineIconLineColor; 200 201 Q_PROPERTY(QColor LightLightBGColor READ getLightLightBGColor WRITE 202 setLightLightBGColor) 203 Q_PROPERTY(QColor LightBGColor READ getLightBGColor WRITE setLightBGColor) 204 Q_PROPERTY(QColor BGColor READ getBGColor WRITE setBGColor) 205 Q_PROPERTY(QColor DarkBGColor READ getDarkBGColor WRITE setDarkBGColor) 206 Q_PROPERTY( 207 QColor LightLineColor READ getLightLineColor WRITE setLightLineColor) 208 Q_PROPERTY(QColor DarkLineColor READ getDarkLineColor WRITE setDarkLineColor) 209 Q_PROPERTY(QColor ColumnIconLineColor READ getColumnIconLineColor WRITE 210 setColumnIconLineColor) 211 Q_PROPERTY(QColor TimelineIconLineColor READ getTimelineIconLineColor WRITE 212 setTimelineIconLineColor) 213 214 // Row 215 QColor m_currentRowBgColor; // current frame / column (210,210,210) 216 QColor m_markerLineColor; // marker lines (0, 255, 246) 217 QColor m_verticalLineColor; // vertical lines 218 QColor m_verticalLineHeadColor; // vertical lines in column head 219 QColor m_textColor; // text color (black) 220 QColor m_errorTextColor; // error text color (red, probably) 221 QColor m_previewFrameTextColor; // frame number in preview range (blue) 222 QColor m_onionSkinAreaBgColor; 223 QColor m_frameRangeMarkerLineColor; // timeline frame markers 224 Q_PROPERTY(QColor CurrentRowBgColor READ getCurrentRowBgColor WRITE 225 setCurrentRowBgColor) 226 Q_PROPERTY( 227 QColor MarkerLineColor READ getMarkerLineColor WRITE setMarkerLineColor) 228 Q_PROPERTY(QColor VerticalLineColor READ getVerticalLineColor WRITE 229 setVerticalLineColor) 230 Q_PROPERTY(QColor VerticalLineHeadColor READ getVerticalLineHeadColor WRITE 231 setVerticalLineHeadColor) 232 Q_PROPERTY(QColor TextColor READ getTextColor WRITE setTextColor) 233 Q_PROPERTY( 234 QColor ErrorTextColor READ getErrorTextColor WRITE setErrorTextColor) 235 Q_PROPERTY(QColor PreviewFrameTextColor READ getPreviewFrameTextColor WRITE 236 setPreviewFrameTextColor) 237 Q_PROPERTY(QColor OnionSkinAreaBgColor READ getOnionSkinAreaBgColor WRITE 238 setOnionSkinAreaBgColor) 239 Q_PROPERTY(QColor FrameRangeMarkerLineColor READ getFrameRangeMarkerLineColor 240 WRITE setFrameRangeMarkerLineColor) 241 // Column 242 QColor m_emptyColumnHeadColor; // empty column header (200,200,200) 243 Q_PROPERTY(QColor EmptyColumnHeadColor READ getEmptyColumnHeadColor WRITE 244 setEmptyColumnHeadColor) 245 246 // Cell 247 QColor m_emptyCellColor; // empty cell (124,124,124) 248 QColor m_notEmptyColumnColor; // occupied column (164,164,164) 249 QColor m_selectedEmptyCellColor; // selected empty cell (210,210,210) 250 Q_PROPERTY( 251 QColor EmptyCellColor READ getEmptyCellColor WRITE setEmptyCellColor) 252 Q_PROPERTY(QColor NotEmptyColumnColor READ getNotEmptyColumnColor WRITE 253 setNotEmptyColumnColor) 254 Q_PROPERTY(QColor SelectedEmptyCellColor READ getSelectedEmptyCellColor WRITE 255 setSelectedEmptyCellColor) 256 257 // Cell focus 258 QColor m_cellFocusColor; 259 Q_PROPERTY( 260 QColor CellFocusColor READ getCellFocusColor WRITE setCellFocusColor) 261 262 // Play range 263 QColor m_playRangeColor; 264 Q_PROPERTY( 265 QColor PlayRangeColor READ getPlayRangeColor WRITE setPlayRangeColor) 266 267 // TZP column 268 QColor m_levelColumnColor; //(127,219,127) 269 QColor m_levelColumnBorderColor; //(47,82,47) 270 QColor m_selectedLevelColumnColor; //(191,237,191) 271 Q_PROPERTY(QColor LevelColumnColor READ getLevelColumnColor WRITE 272 setLevelColumnColor) 273 Q_PROPERTY(QColor LevelColumnBorderColor READ getLevelColumnBorderColor WRITE 274 setLevelColumnBorderColor) 275 Q_PROPERTY(QColor SelectedLevelColumnColor READ getSelectedLevelColumnColor 276 WRITE setSelectedLevelColumnColor) 277 // PLI column 278 QColor m_vectorColumnColor; //(212,212,133) 279 QColor m_vectorColumnBorderColor; //(79,79,49) 280 QColor m_selectedVectorColumnColor; //(234,234,194) 281 Q_PROPERTY(QColor VectorColumnColor READ getVectorColumnColor WRITE 282 setVectorColumnColor) 283 Q_PROPERTY(QColor VectorColumnBorderColor READ getVectorColumnBorderColor 284 WRITE setVectorColumnBorderColor) 285 Q_PROPERTY(QColor SelectedVectorColumnColor READ getSelectedVectorColumnColor 286 WRITE setSelectedVectorColumnColor) 287 // subXsheet column 288 QColor m_childColumnColor; //(214,154,219) 289 QColor m_childColumnBorderColor; //(80,57,82) 290 QColor m_selectedChildColumnColor; //(235,205,237) 291 Q_PROPERTY(QColor ChildColumnColor READ getChildColumnColor WRITE 292 setChildColumnColor) 293 Q_PROPERTY(QColor ChildColumnBorderColor READ getChildColumnBorderColor WRITE 294 setChildColumnBorderColor) 295 Q_PROPERTY(QColor SelectedChildColumnColor READ getSelectedChildColumnColor 296 WRITE setSelectedChildColumnColor) 297 // Raster image column 298 QColor m_fullcolorColumnColor; //(154,214,219) 299 QColor m_fullcolorColumnBorderColor; //(57,80,82) 300 QColor m_selectedFullcolorColumnColor; //(205,235,237) 301 Q_PROPERTY(QColor FullcolorColumnColor READ getFullcolorColumnColor WRITE 302 setFullcolorColumnColor) 303 Q_PROPERTY( 304 QColor FullcolorColumnBorderColor READ getFullcolorColumnBorderColor WRITE 305 setFullcolorColumnBorderColor) 306 Q_PROPERTY( 307 QColor SelectedFullcolorColumnColor READ getSelectedFullcolorColumnColor 308 WRITE setSelectedFullcolorColumnColor) 309 // Fx column 310 QColor m_fxColumnColor; //(130,129,93) 311 QColor m_fxColumnBorderColor; //(48,48,35) 312 QColor m_selectedFxColumnColor; //(193,192,174) 313 Q_PROPERTY(QColor FxColumnColor READ getFxColumnColor WRITE setFxColumnColor) 314 Q_PROPERTY(QColor FxColumnBorderColor READ getFxColumnBorderColor WRITE 315 setFxColumnBorderColor) 316 Q_PROPERTY(QColor SelectedFxColumnColor READ getSelectedFxColumnColor WRITE 317 setSelectedFxColumnColor) 318 // Reference column 319 QColor m_referenceColumnColor; //(171,171,171) 320 QColor m_referenceColumnBorderColor; //(62,62,62) 321 QColor m_selectedReferenceColumnColor; //(213,213,213) 322 Q_PROPERTY(QColor ReferenceColumnColor READ getReferenceColumnColor WRITE 323 setReferenceColumnColor) 324 Q_PROPERTY( 325 QColor ReferenceColumnBorderColor READ getReferenceColumnBorderColor WRITE 326 setReferenceColumnBorderColor) 327 Q_PROPERTY( 328 QColor SelectedReferenceColumnColor READ getSelectedReferenceColumnColor 329 WRITE setSelectedReferenceColumnColor) 330 // Palette column 331 QColor m_paletteColumnColor; //(42,171,154) 332 QColor m_paletteColumnBorderColor; //(15,62,56) 333 QColor m_selectedPaletteColumnColor; //(146,221,202) 334 Q_PROPERTY(QColor PaletteColumnColor READ getPaletteColumnColor WRITE 335 setPaletteColumnColor) 336 Q_PROPERTY(QColor PaletteColumnBorderColor READ getPaletteColumnBorderColor 337 WRITE setPaletteColumnBorderColor) 338 Q_PROPERTY( 339 QColor SelectedPaletteColumnColor READ getSelectedPaletteColumnColor WRITE 340 setSelectedPaletteColumnColor) 341 // Mesh column 342 QColor m_meshColumnColor; 343 QColor m_meshColumnBorderColor; 344 QColor m_selectedMeshColumnColor; 345 Q_PROPERTY( 346 QColor MeshColumnColor READ getMeshColumnColor WRITE setMeshColumnColor) 347 Q_PROPERTY(QColor MeshColumnBorderColor READ getMeshColumnBorderColor WRITE 348 setMeshColumnBorderColor) 349 Q_PROPERTY(QColor SelectedMeshColumnColor READ getSelectedMeshColumnColor 350 WRITE setSelectedMeshColumnColor) 351 // SoundText column 352 QColor m_soundTextColumnColor; 353 QColor m_soundTextColumnBorderColor; 354 QColor m_selectedSoundTextColumnColor; 355 Q_PROPERTY(QColor SoundTextColumnColor READ getSoundTextColumnColor WRITE 356 setSoundTextColumnColor) 357 Q_PROPERTY( 358 QColor SoundTextColumnBorderColor READ getSoundTextColumnBorderColor WRITE 359 setSoundTextColumnBorderColor) 360 Q_PROPERTY( 361 QColor SelectedSoundTextColumnColor READ getSelectedSoundTextColumnColor 362 WRITE setSelectedSoundTextColumnColor) 363 // Sound column 364 QColor m_soundColumnColor; 365 QColor m_soundColumnBorderColor; 366 QColor m_selectedSoundColumnColor; 367 QColor m_soundColumnHlColor; 368 QColor m_soundColumnTrackColor; 369 Q_PROPERTY(QColor SoundColumnColor MEMBER m_soundColumnColor) 370 Q_PROPERTY(QColor SoundColumnBorderColor MEMBER m_soundColumnBorderColor) 371 Q_PROPERTY(QColor SelectedSoundColumnColor MEMBER m_selectedSoundColumnColor) 372 Q_PROPERTY(QColor SoundColumnHlColor MEMBER m_soundColumnHlColor) 373 Q_PROPERTY(QColor SoundColumnTrackColor MEMBER m_soundColumnTrackColor) 374 375 // for making the column head lighter (255,255,255,50); 376 QColor m_columnHeadPastelizer; 377 Q_PROPERTY(QColor ColumnHeadPastelizer READ getColumnHeadPastelizer WRITE 378 setColumnHeadPastelizer) 379 // selected column head (190,210,240,170); 380 QColor m_selectedColumnHead; 381 Q_PROPERTY(QColor SelectedColumnHead READ getSelectedColumnHead WRITE 382 setSelectedColumnHead) 383 384 // For folded column 385 QColor m_foldedColumnBGColor; 386 QColor m_foldedColumnLineColor; 387 Q_PROPERTY(QColor FoldedColumnBGColor READ getFoldedColumnBGColor WRITE 388 setFoldedColumnBGColor) 389 Q_PROPERTY(QColor FoldedColumnLineColor READ getFoldedColumnLineColor WRITE 390 setFoldedColumnLineColor) 391 392 // Xsheet Column name/Drag bar colors 393 QColor m_xsheetColumnNameBgColor; 394 QColor m_xsheetDragBarHighlightColor; 395 Q_PROPERTY(QColor XsheetColumnNameBgColor READ getXsheetColumnNameBgColor 396 WRITE setXsheetColumnNameBgColor) 397 Q_PROPERTY( 398 QColor XsheetDragBarHighlightColor READ getXsheetDragBarHighlightColor 399 WRITE setXsheetDragBarHighlightColor) 400 401 // Xsheet Active Camera color 402 QColor m_ActiveCameraColor; 403 QColor m_SelectedActiveCameraColor; 404 Q_PROPERTY(QColor ActiveCameraColor READ getActiveCameraColor WRITE 405 setActiveCameraColor) 406 Q_PROPERTY(QColor SelectedActiveCameraColor READ getSelectedActiveCameraColor 407 WRITE setSelectedActiveCameraColor) 408 // Xsheet Other Camera color 409 QColor m_OtherCameraColor; 410 QColor m_SelectedOtherCameraColor; 411 Q_PROPERTY(QColor OtherCameraColor READ getOtherCameraColor WRITE 412 setOtherCameraColor) 413 Q_PROPERTY(QColor SelectedOtherCameraColor READ getSelectedOtherCameraColor 414 WRITE setSelectedOtherCameraColor) 415 416 // Xsheet Preview Button 417 QColor m_xsheetPreviewButtonBgOnColor; 418 QImage m_xsheetPreviewButtonOnImage; 419 QColor m_xsheetPreviewButtonBgOffColor; 420 QImage m_xsheetPreviewButtonOffImage; 421 Q_PROPERTY( 422 QColor XsheetPreviewButtonBgOnColor READ getXsheetPreviewButtonBgOnColor 423 WRITE setXsheetPreviewButtonBgOnColor) 424 Q_PROPERTY( 425 QImage XsheetPreviewButtonOnImage READ getXsheetPreviewButtonOnImage WRITE 426 setXsheetPreviewButtonOnImage) 427 Q_PROPERTY( 428 QColor XsheetPreviewButtonBgOffColor READ getXsheetPreviewButtonBgOffColor 429 WRITE setXsheetPreviewButtonBgOffColor) 430 Q_PROPERTY( 431 QImage XsheetPreviewButtonOffImage READ getXsheetPreviewButtonOffImage 432 WRITE setXsheetPreviewButtonOffImage) 433 // Xsheet Camstand Button 434 QColor m_xsheetCamstandButtonBgOnColor; 435 QImage m_xsheetCamstandButtonOnImage; 436 QImage m_xsheetCamstandButtonTranspImage; 437 QColor m_xsheetCamstandButtonBgOffColor; 438 QImage m_xsheetCamstandButtonOffImage; 439 Q_PROPERTY( 440 QColor XsheetCamstandButtonBgOnColor READ getXsheetCamstandButtonBgOnColor 441 WRITE setXsheetCamstandButtonBgOnColor) 442 Q_PROPERTY( 443 QImage XsheetCamstandButtonOnImage READ getXsheetCamstandButtonOnImage 444 WRITE setXsheetCamstandButtonOnImage) 445 Q_PROPERTY(QImage XsheetCamstandButtonTranspImage READ 446 getXsheetCamstandButtonTranspImage WRITE 447 setXsheetCamstandButtonTranspImage) 448 Q_PROPERTY(QColor XsheetCamstandButtonBgOffColor READ 449 getXsheetCamstandButtonBgOffColor WRITE 450 setXsheetCamstandButtonBgOffColor) 451 Q_PROPERTY( 452 QImage XsheetCamstandButtonOffImage READ getXsheetCamstandButtonOffImage 453 WRITE setXsheetCamstandButtonOffImage) 454 // Xsheet Lock Button 455 QColor m_xsheetLockButtonBgOnColor; 456 QImage m_xsheetLockButtonOnImage; 457 QColor m_xsheetLockButtonBgOffColor; 458 QImage m_xsheetLockButtonOffImage; 459 Q_PROPERTY(QColor XsheetLockButtonBgOnColor READ getXsheetLockButtonBgOnColor 460 WRITE setXsheetLockButtonBgOnColor) 461 Q_PROPERTY(QImage XsheetLockButtonOnImage READ getXsheetLockButtonOnImage 462 WRITE setXsheetLockButtonOnImage) 463 Q_PROPERTY( 464 QColor XsheetLockButtonBgOffColor READ getXsheetLockButtonBgOffColor WRITE 465 setXsheetLockButtonBgOffColor) 466 Q_PROPERTY(QImage XsheetLockButtonOffImage READ getXsheetLockButtonOffImage 467 WRITE setXsheetLockButtonOffImage) 468 // Xsheet Config Button 469 QColor m_xsheetConfigButtonBgColor; 470 QImage m_xsheetConfigButtonImage; 471 Q_PROPERTY(QColor XsheetConfigButtonBgColor READ getXsheetConfigButtonBgColor 472 WRITE setXsheetConfigButtonBgColor) 473 Q_PROPERTY(QImage XsheetConfigButtonImage READ getXsheetConfigButtonImage 474 WRITE setXsheetConfigButtonImage) 475 // Timeline Preview Button 476 QColor m_timelinePreviewButtonBgOnColor; 477 QImage m_timelinePreviewButtonOnImage; 478 QColor m_timelinePreviewButtonBgOffColor; 479 QImage m_timelinePreviewButtonOffImage; 480 Q_PROPERTY(QColor TimelinePreviewButtonBgOnColor READ 481 getTimelinePreviewButtonBgOnColor WRITE 482 setTimelinePreviewButtonBgOnColor) 483 Q_PROPERTY( 484 QImage TimelinePreviewButtonOnImage READ getTimelinePreviewButtonOnImage 485 WRITE setTimelinePreviewButtonOnImage) 486 Q_PROPERTY(QColor TimelinePreviewButtonBgOffColor READ 487 getTimelinePreviewButtonBgOffColor WRITE 488 setTimelinePreviewButtonBgOffColor) 489 Q_PROPERTY( 490 QImage TimelinePreviewButtonOffImage READ getTimelinePreviewButtonOffImage 491 WRITE setTimelinePreviewButtonOffImage) 492 // Timeline Camstand Button 493 QColor m_timelineCamstandButtonBgOnColor; 494 QImage m_timelineCamstandButtonOnImage; 495 QImage m_timelineCamstandButtonTranspImage; 496 QColor m_timelineCamstandButtonBgOffColor; 497 QImage m_timelineCamstandButtonOffImage; 498 Q_PROPERTY(QColor TimelineCamstandButtonBgOnColor READ 499 getTimelineCamstandButtonBgOnColor WRITE 500 setTimelineCamstandButtonBgOnColor) 501 Q_PROPERTY( 502 QImage TimelineCamstandButtonOnImage READ getTimelineCamstandButtonOnImage 503 WRITE setTimelineCamstandButtonOnImage) 504 Q_PROPERTY(QImage TimelineCamstandButtonTranspImage READ 505 getTimelineCamstandButtonTranspImage WRITE 506 setTimelineCamstandButtonTranspImage) 507 Q_PROPERTY(QColor TimelineCamstandButtonBgOffColor READ 508 getTimelineCamstandButtonBgOffColor WRITE 509 setTimelineCamstandButtonBgOffColor) 510 Q_PROPERTY(QImage TimelineCamstandButtonOffImage READ 511 getTimelineCamstandButtonOffImage WRITE 512 setTimelineCamstandButtonOffImage) 513 // Timeline Lock Button 514 QColor m_timelineLockButtonBgOnColor; 515 QImage m_timelineLockButtonOnImage; 516 QColor m_timelineLockButtonBgOffColor; 517 QImage m_timelineLockButtonOffImage; 518 Q_PROPERTY( 519 QColor TimelineLockButtonBgOnColor READ getTimelineLockButtonBgOnColor 520 WRITE setTimelineLockButtonBgOnColor) 521 Q_PROPERTY(QImage TimelineLockButtonOnImage READ getTimelineLockButtonOnImage 522 WRITE setTimelineLockButtonOnImage) 523 Q_PROPERTY( 524 QColor TimelineLockButtonBgOffColor READ getTimelineLockButtonBgOffColor 525 WRITE setTimelineLockButtonBgOffColor) 526 Q_PROPERTY( 527 QImage TimelineLockButtonOffImage READ getTimelineLockButtonOffImage WRITE 528 setTimelineLockButtonOffImage) 529 // Timeline Config Button 530 QColor m_timelineConfigButtonBgColor; 531 QImage m_timelineConfigButtonImage; 532 Q_PROPERTY( 533 QColor TimelineConfigButtonBgColor READ getTimelineConfigButtonBgColor 534 WRITE setTimelineConfigButtonBgColor) 535 Q_PROPERTY(QImage TimelineConfigButtonImage READ getTimelineConfigButtonImage 536 WRITE setTimelineConfigButtonImage) 537 // Layer Header icons 538 QImage m_layerHeaderPreviewImage; 539 QImage m_layerHeaderPreviewOverImage; 540 QImage m_layerHeaderCamstandImage; 541 QImage m_layerHeaderCamstandOverImage; 542 QImage m_layerHeaderLockImage; 543 QImage m_layerHeaderLockOverImage; 544 Q_PROPERTY(QImage LayerHeaderPreviewImage READ getLayerHeaderPreviewImage 545 WRITE setLayerHeaderPreviewImage) 546 Q_PROPERTY( 547 QImage LayerHeaderPreviewOverImage READ getLayerHeaderPreviewOverImage 548 WRITE setLayerHeaderPreviewOverImage) 549 Q_PROPERTY(QImage LayerHeaderCamstandImage READ getLayerHeaderCamstandImage 550 WRITE setLayerHeaderCamstandImage) 551 Q_PROPERTY( 552 QImage LayerHeaderCamstandOverImage READ getLayerHeaderCamstandOverImage 553 WRITE setLayerHeaderCamstandOverImage) 554 Q_PROPERTY(QImage LayerHeaderLockImage READ getLayerHeaderLockImage WRITE 555 setLayerHeaderLockImage) 556 Q_PROPERTY(QImage LayerHeaderLockOverImage READ getLayerHeaderLockOverImage 557 WRITE setLayerHeaderLockOverImage) 558 559 XsheetScrollArea *m_cellScrollArea; 560 XsheetScrollArea *m_columnScrollArea; 561 XsheetScrollArea *m_rowScrollArea; 562 XsheetScrollArea *m_noteScrollArea; 563 XsheetScrollArea *m_toolbarScrollArea; 564 565 XsheetGUI::ColumnArea *m_columnArea; 566 XsheetGUI::RowArea *m_rowArea; 567 XsheetGUI::CellArea *m_cellArea; 568 XsheetGUI::NoteArea *m_noteArea; 569 XsheetGUI::XSheetToolbar *m_toolbar; 570 LayerFooterPanel *m_layerFooterPanel; 571 572 Spreadsheet::FrameScroller m_frameScroller; 573 574 int m_timerId; 575 QPoint m_autoPanSpeed; 576 QPoint m_lastAutoPanPos; 577 578 TColumnSelection *m_columnSelection; 579 TCellKeyframeSelection *m_cellKeyframeSelection; 580 581 int m_scrubCol, m_scrubRow0, m_scrubRow1; 582 583 bool m_isCurrentFrameSwitched; 584 bool m_isCurrentColumnSwitched; 585 586 XsheetGUI::DragTool *m_dragTool; 587 588 bool m_isComputingSize; 589 590 QList<XsheetGUI::NoteWidget *> m_noteWidgets; 591 int m_currentNoteIndex; 592 593 Qt::KeyboardModifiers m_qtModifiers; 594 595 const Orientation *m_orientation; 596 597 QString m_xsheetLayout; 598 599 int m_frameZoomFactor; 600 601 public: 602 enum FrameDisplayStyle { Frame = 0, SecAndFrame, SixSecSheet, ThreeSecSheet }; 603 604 private: 605 FrameDisplayStyle m_frameDisplayStyle; 606 to_enum(int n)607 FrameDisplayStyle to_enum(int n) { 608 switch (n) { 609 case 0: 610 return Frame; 611 case 1: 612 return SecAndFrame; 613 case 2: 614 return SixSecSheet; 615 default: 616 return ThreeSecSheet; 617 } 618 } 619 620 public: 621 #if QT_VERSION >= 0x050500 622 XsheetViewer(QWidget *parent = 0, Qt::WindowFlags flags = 0); 623 #else 624 XsheetViewer(QWidget *parent = 0, Qt::WFlags flags = 0); 625 #endif 626 ~XsheetViewer(); 627 getColumnSelection()628 TColumnSelection *getColumnSelection() const { return m_columnSelection; } getCellSelection()629 TCellSelection *getCellSelection() const { 630 return m_cellKeyframeSelection->getCellSelection(); 631 } getKeyframeSelection()632 TKeyframeSelection *getKeyframeSelection() const { 633 return m_cellKeyframeSelection->getKeyframeSelection(); 634 } getCellKeyframeSelection()635 TCellKeyframeSelection *getCellKeyframeSelection() const { 636 return m_cellKeyframeSelection; 637 } 638 639 bool areCellsSelectedEmpty(); 640 /*! Return true if selection contain only sound cell.*/ 641 bool areSoundCellsSelected(); 642 bool areSoundTextCellsSelected(); 643 bool areCameraCellsSelected(); 644 getDragTool()645 XsheetGUI::DragTool *getDragTool() const { return m_dragTool; }; 646 void setDragTool(XsheetGUI::DragTool *dragTool); 647 648 void dragToolClick(QMouseEvent *); 649 void dragToolDrag(QMouseEvent *); 650 void dragToolRelease(QMouseEvent *); // n.b. cancella il dragtool 651 652 void dragToolLeave(QEvent *); // n.b. cancella il dragtool 653 654 void dragToolClick(QDropEvent *); 655 void dragToolDrag(QDropEvent *); 656 void dragToolRelease(QDropEvent *); // n.b. cancella il dragtool 657 setQtModifiers(Qt::KeyboardModifiers value)658 void setQtModifiers(Qt::KeyboardModifiers value) { m_qtModifiers = value; } 659 660 void setScrubHighlight(int row, int starRow, int col); 661 void resetScrubHighlight(); 662 void getScrubHeighlight(int &R0, int &R1); 663 bool isScrubHighlighted(int row, int col); 664 665 TXsheet *getXsheet() const; 666 int getCurrentColumn() const; 667 int getCurrentRow() const; 668 //! Restituisce la \b objectId corrispondente alla colonna \b col 669 TStageObjectId getObjectId(int col) const; 670 671 void setCurrentColumn(int col); 672 void setCurrentRow(int row); 673 674 void scroll(QPoint delta); 675 676 void setAutoPanSpeed(const QPoint &speed); 677 void setAutoPanSpeed(const QRect &widgetBounds, const QPoint &mousePos); stopAutoPan()678 void stopAutoPan() { setAutoPanSpeed(QPoint()); } isAutoPanning()679 bool isAutoPanning() const { 680 return m_autoPanSpeed.x() != 0 || m_autoPanSpeed.y() != 0; 681 } 682 683 //------- 684 const Orientation *orientation() const; 685 void flipOrientation(); 686 687 CellPosition xyToPosition(const QPoint &point) const; 688 CellPosition xyToPosition(const TPoint &point) const; 689 CellPosition xyToPosition(const TPointD &point) const; 690 QPoint positionToXY(const CellPosition &pos) const; 691 692 int colToTimelineLayerAxis(int layer) const; 693 694 int columnToLayerAxis(int layer) const; 695 int rowToFrameAxis(int frame) const; 696 697 CellRange xyRectToRange(const QRect &rect) const; 698 QRect rangeToXYRect(const CellRange &range) const; 699 700 void drawPredefinedPath(QPainter &p, PredefinedPath which, 701 const CellPosition &pos, optional<QColor> fill, 702 optional<QColor> outline) const; 703 704 void drawPredefinedPath(QPainter &p, PredefinedPath which, QPoint xy, 705 optional<QColor> fill, 706 optional<QColor> outline) const; 707 708 //--------- 709 updateCells()710 void updateCells() { m_cellArea->update(m_cellArea->visibleRegion()); } updateRows()711 void updateRows() { m_rowArea->update(m_rowArea->visibleRegion()); } updateColumns()712 void updateColumns() { m_columnArea->update(m_columnArea->visibleRegion()); } 713 bool refreshContentSize(int scrollDx, int scrollDy); 714 715 void updateAreeSize(); 716 717 QList<XsheetGUI::NoteWidget *> getNotesWidget() const; 718 void addNoteWidget(XsheetGUI::NoteWidget *w); 719 int getCurrentNoteIndex() const; 720 //! Clear notes widgets std::vector. 721 void clearNoteWidgets(); 722 //! Update notes widgets and update cell. 723 void updateNoteWidgets(); 724 //! Discard Note Widget 725 void discardNoteWidget(); 726 727 void setCurrentNoteIndex(int currentNoteIndex); 728 729 // scroll the cell area to make a cell at (row,col) visible 730 void scrollTo(int row, int col); 731 732 // QProperty setLightLightBGColor(const QColor & color)733 void setLightLightBGColor(const QColor &color) { 734 m_lightLightBgColor = color; 735 } getLightLightBGColor()736 QColor getLightLightBGColor() const { return m_lightLightBgColor; } setLightBGColor(const QColor & color)737 void setLightBGColor(const QColor &color) { m_lightBgColor = color; } getLightBGColor()738 QColor getLightBGColor() const { return m_lightBgColor; } setBGColor(const QColor & color)739 void setBGColor(const QColor &color) { m_bgColor = color; } getBGColor()740 QColor getBGColor() const { return m_bgColor; } setDarkBGColor(const QColor & color)741 void setDarkBGColor(const QColor &color) { m_darkBgColor = color; } getDarkBGColor()742 QColor getDarkBGColor() const { return m_darkBgColor; } setLightLineColor(const QColor & color)743 void setLightLineColor(const QColor &color) { m_lightLineColor = color; } getLightLineColor()744 QColor getLightLineColor() const { return m_lightLineColor; } setDarkLineColor(const QColor & color)745 void setDarkLineColor(const QColor &color) { m_darkLineColor = color; } getDarkLineColor()746 QColor getDarkLineColor() const { return m_darkLineColor; } 747 getColumnIconLineColor()748 QColor getColumnIconLineColor() const { return m_columnIconLineColor; } setColumnIconLineColor(const QColor & color)749 void setColumnIconLineColor(const QColor &color) { 750 m_columnIconLineColor = color; 751 } getTimelineIconLineColor()752 QColor getTimelineIconLineColor() const { return m_timelineIconLineColor; } setTimelineIconLineColor(const QColor & color)753 void setTimelineIconLineColor(const QColor &color) { 754 m_timelineIconLineColor = color; 755 } getFrameRangeMarkerLineColor()756 QColor getFrameRangeMarkerLineColor() const { 757 return m_frameRangeMarkerLineColor; 758 } setFrameRangeMarkerLineColor(const QColor & color)759 void setFrameRangeMarkerLineColor(const QColor &color) { 760 m_frameRangeMarkerLineColor = color; 761 } 762 763 // Row setCurrentRowBgColor(const QColor & color)764 void setCurrentRowBgColor(const QColor &color) { 765 m_currentRowBgColor = color; 766 } getCurrentRowBgColor()767 QColor getCurrentRowBgColor() const { return m_currentRowBgColor; } setMarkerLineColor(const QColor & color)768 void setMarkerLineColor(const QColor &color) { m_markerLineColor = color; } getMarkerLineColor()769 QColor getMarkerLineColor() const { return m_markerLineColor; } setVerticalLineColor(const QColor & color)770 void setVerticalLineColor(const QColor &color) { 771 m_verticalLineColor = color; 772 } getVerticalLineColor()773 QColor getVerticalLineColor() const { return m_verticalLineColor; } setVerticalLineHeadColor(const QColor & color)774 void setVerticalLineHeadColor(const QColor &color) { 775 m_verticalLineHeadColor = color; 776 } getVerticalLineHeadColor()777 QColor getVerticalLineHeadColor() const { return m_verticalLineHeadColor; } setTextColor(const QColor & color)778 void setTextColor(const QColor &color) { m_textColor = color; } getTextColor()779 QColor getTextColor() const { return m_textColor; } setErrorTextColor(const QColor & color)780 void setErrorTextColor(const QColor &color) { m_errorTextColor = color; } getErrorTextColor()781 QColor getErrorTextColor() const { return m_errorTextColor; } setPreviewFrameTextColor(const QColor & color)782 void setPreviewFrameTextColor(const QColor &color) { 783 m_previewFrameTextColor = color; 784 } getPreviewFrameTextColor()785 QColor getPreviewFrameTextColor() const { return m_previewFrameTextColor; } setOnionSkinAreaBgColor(const QColor & color)786 void setOnionSkinAreaBgColor(const QColor &color) { 787 m_onionSkinAreaBgColor = color; 788 } getOnionSkinAreaBgColor()789 QColor getOnionSkinAreaBgColor() const { return m_onionSkinAreaBgColor; } 790 791 // Column setEmptyColumnHeadColor(const QColor & color)792 void setEmptyColumnHeadColor(const QColor &color) { 793 m_emptyColumnHeadColor = color; 794 } getEmptyColumnHeadColor()795 QColor getEmptyColumnHeadColor() const { return m_emptyColumnHeadColor; } 796 797 // specified by preferences 798 QColor getSelectedColumnTextColor() const; 799 800 // Cell setEmptyCellColor(const QColor & color)801 void setEmptyCellColor(const QColor &color) { m_emptyCellColor = color; } getEmptyCellColor()802 QColor getEmptyCellColor() const { return m_emptyCellColor; } setNotEmptyColumnColor(const QColor & color)803 void setNotEmptyColumnColor(const QColor &color) { 804 m_notEmptyColumnColor = color; 805 } getNotEmptyColumnColor()806 QColor getNotEmptyColumnColor() const { return m_notEmptyColumnColor; } setSelectedEmptyCellColor(const QColor & color)807 void setSelectedEmptyCellColor(const QColor &color) { 808 m_selectedEmptyCellColor = color; 809 } getSelectedEmptyCellColor()810 QColor getSelectedEmptyCellColor() const { return m_selectedEmptyCellColor; } 811 812 // Cell focus setCellFocusColor(const QColor & color)813 void setCellFocusColor(const QColor &color) { m_cellFocusColor = color; } getCellFocusColor()814 QColor getCellFocusColor() const { return m_cellFocusColor; } 815 816 // Play range getPlayRangeColor()817 QColor getPlayRangeColor() const { return m_playRangeColor; } setPlayRangeColor(const QColor & color)818 void setPlayRangeColor(const QColor &color) { m_playRangeColor = color; } 819 820 // TZP column setLevelColumnColor(const QColor & color)821 void setLevelColumnColor(const QColor &color) { m_levelColumnColor = color; } setLevelColumnBorderColor(const QColor & color)822 void setLevelColumnBorderColor(const QColor &color) { 823 m_levelColumnBorderColor = color; 824 } setSelectedLevelColumnColor(const QColor & color)825 void setSelectedLevelColumnColor(const QColor &color) { 826 m_selectedLevelColumnColor = color; 827 } getLevelColumnColor()828 QColor getLevelColumnColor() const { return m_levelColumnColor; } getLevelColumnBorderColor()829 QColor getLevelColumnBorderColor() const { return m_levelColumnBorderColor; } getSelectedLevelColumnColor()830 QColor getSelectedLevelColumnColor() const { 831 return m_selectedLevelColumnColor; 832 } 833 // PLI column setVectorColumnColor(const QColor & color)834 void setVectorColumnColor(const QColor &color) { 835 m_vectorColumnColor = color; 836 } setVectorColumnBorderColor(const QColor & color)837 void setVectorColumnBorderColor(const QColor &color) { 838 m_vectorColumnBorderColor = color; 839 } setSelectedVectorColumnColor(const QColor & color)840 void setSelectedVectorColumnColor(const QColor &color) { 841 m_selectedVectorColumnColor = color; 842 } getVectorColumnColor()843 QColor getVectorColumnColor() const { return m_vectorColumnColor; } getVectorColumnBorderColor()844 QColor getVectorColumnBorderColor() const { 845 return m_vectorColumnBorderColor; 846 } getSelectedVectorColumnColor()847 QColor getSelectedVectorColumnColor() const { 848 return m_selectedVectorColumnColor; 849 } 850 // subXsheet column setChildColumnColor(const QColor & color)851 void setChildColumnColor(const QColor &color) { m_childColumnColor = color; } setChildColumnBorderColor(const QColor & color)852 void setChildColumnBorderColor(const QColor &color) { 853 m_childColumnBorderColor = color; 854 } setSelectedChildColumnColor(const QColor & color)855 void setSelectedChildColumnColor(const QColor &color) { 856 m_selectedChildColumnColor = color; 857 } getChildColumnColor()858 QColor getChildColumnColor() const { return m_childColumnColor; } getChildColumnBorderColor()859 QColor getChildColumnBorderColor() const { return m_childColumnBorderColor; } getSelectedChildColumnColor()860 QColor getSelectedChildColumnColor() const { 861 return m_selectedChildColumnColor; 862 } 863 // Raster image column setFullcolorColumnColor(const QColor & color)864 void setFullcolorColumnColor(const QColor &color) { 865 m_fullcolorColumnColor = color; 866 } setFullcolorColumnBorderColor(const QColor & color)867 void setFullcolorColumnBorderColor(const QColor &color) { 868 m_fullcolorColumnBorderColor = color; 869 } setSelectedFullcolorColumnColor(const QColor & color)870 void setSelectedFullcolorColumnColor(const QColor &color) { 871 m_selectedFullcolorColumnColor = color; 872 } getFullcolorColumnColor()873 QColor getFullcolorColumnColor() const { return m_fullcolorColumnColor; } getFullcolorColumnBorderColor()874 QColor getFullcolorColumnBorderColor() const { 875 return m_fullcolorColumnBorderColor; 876 } getSelectedFullcolorColumnColor()877 QColor getSelectedFullcolorColumnColor() const { 878 return m_selectedFullcolorColumnColor; 879 } 880 // Fx column setFxColumnColor(const QColor & color)881 void setFxColumnColor(const QColor &color) { m_fxColumnColor = color; } setFxColumnBorderColor(const QColor & color)882 void setFxColumnBorderColor(const QColor &color) { 883 m_fxColumnBorderColor = color; 884 } setSelectedFxColumnColor(const QColor & color)885 void setSelectedFxColumnColor(const QColor &color) { 886 m_selectedFxColumnColor = color; 887 } getFxColumnColor()888 QColor getFxColumnColor() const { return m_fxColumnColor; } getFxColumnBorderColor()889 QColor getFxColumnBorderColor() const { return m_fxColumnBorderColor; } getSelectedFxColumnColor()890 QColor getSelectedFxColumnColor() const { return m_selectedFxColumnColor; } 891 // Reference column setReferenceColumnColor(const QColor & color)892 void setReferenceColumnColor(const QColor &color) { 893 m_referenceColumnColor = color; 894 } setReferenceColumnBorderColor(const QColor & color)895 void setReferenceColumnBorderColor(const QColor &color) { 896 m_referenceColumnBorderColor = color; 897 } setSelectedReferenceColumnColor(const QColor & color)898 void setSelectedReferenceColumnColor(const QColor &color) { 899 m_selectedReferenceColumnColor = color; 900 } getReferenceColumnColor()901 QColor getReferenceColumnColor() const { return m_referenceColumnColor; } getReferenceColumnBorderColor()902 QColor getReferenceColumnBorderColor() const { 903 return m_referenceColumnBorderColor; 904 } getSelectedReferenceColumnColor()905 QColor getSelectedReferenceColumnColor() const { 906 return m_selectedReferenceColumnColor; 907 } 908 // Palette column setPaletteColumnColor(const QColor & color)909 void setPaletteColumnColor(const QColor &color) { 910 m_paletteColumnColor = color; 911 } setPaletteColumnBorderColor(const QColor & color)912 void setPaletteColumnBorderColor(const QColor &color) { 913 m_paletteColumnBorderColor = color; 914 } setSelectedPaletteColumnColor(const QColor & color)915 void setSelectedPaletteColumnColor(const QColor &color) { 916 m_selectedPaletteColumnColor = color; 917 } getPaletteColumnColor()918 QColor getPaletteColumnColor() const { return m_paletteColumnColor; } getPaletteColumnBorderColor()919 QColor getPaletteColumnBorderColor() const { 920 return m_paletteColumnBorderColor; 921 } getSelectedPaletteColumnColor()922 QColor getSelectedPaletteColumnColor() const { 923 return m_selectedPaletteColumnColor; 924 } 925 // Mesh column setMeshColumnColor(const QColor & color)926 void setMeshColumnColor(const QColor &color) { m_meshColumnColor = color; } setMeshColumnBorderColor(const QColor & color)927 void setMeshColumnBorderColor(const QColor &color) { 928 m_meshColumnBorderColor = color; 929 } setSelectedMeshColumnColor(const QColor & color)930 void setSelectedMeshColumnColor(const QColor &color) { 931 m_selectedMeshColumnColor = color; 932 } getMeshColumnColor()933 QColor getMeshColumnColor() const { return m_meshColumnColor; } getMeshColumnBorderColor()934 QColor getMeshColumnBorderColor() const { return m_meshColumnBorderColor; } getSelectedMeshColumnColor()935 QColor getSelectedMeshColumnColor() const { 936 return m_selectedMeshColumnColor; 937 } 938 // SoundText column setSoundTextColumnColor(const QColor & color)939 void setSoundTextColumnColor(const QColor &color) { 940 m_soundTextColumnColor = color; 941 } setSoundTextColumnBorderColor(const QColor & color)942 void setSoundTextColumnBorderColor(const QColor &color) { 943 m_soundTextColumnBorderColor = color; 944 } setSelectedSoundTextColumnColor(const QColor & color)945 void setSelectedSoundTextColumnColor(const QColor &color) { 946 m_selectedSoundTextColumnColor = color; 947 } getSoundTextColumnColor()948 QColor getSoundTextColumnColor() const { return m_soundTextColumnColor; } getSoundTextColumnBorderColor()949 QColor getSoundTextColumnBorderColor() const { 950 return m_soundTextColumnBorderColor; 951 } getSelectedSoundTextColumnColor()952 QColor getSelectedSoundTextColumnColor() const { 953 return m_selectedSoundTextColumnColor; 954 } 955 // Sound column getSoundColumnHlColor()956 QColor getSoundColumnHlColor() const { return m_soundColumnHlColor; } getSoundColumnTrackColor()957 QColor getSoundColumnTrackColor() const { return m_soundColumnTrackColor; } 958 setColumnHeadPastelizer(const QColor & color)959 void setColumnHeadPastelizer(const QColor &color) { 960 m_columnHeadPastelizer = color; 961 } getColumnHeadPastelizer()962 QColor getColumnHeadPastelizer() const { return m_columnHeadPastelizer; } setSelectedColumnHead(const QColor & color)963 void setSelectedColumnHead(const QColor &color) { 964 m_selectedColumnHead = color; 965 } getSelectedColumnHead()966 QColor getSelectedColumnHead() const { return m_selectedColumnHead; } 967 968 void getCellTypeAndColors(int <ype, QColor &cellColor, QColor &sideColor, 969 const TXshCell &cell, bool isSelected = false); 970 void getColumnColor(QColor &color, QColor &sidecolor, int index, 971 TXsheet *xsh); 972 973 // For folded column getFoldedColumnBGColor()974 QColor getFoldedColumnBGColor() const { return m_foldedColumnBGColor; } getFoldedColumnLineColor()975 QColor getFoldedColumnLineColor() const { return m_foldedColumnLineColor; } setFoldedColumnBGColor(const QColor & color)976 void setFoldedColumnBGColor(const QColor &color) { 977 m_foldedColumnBGColor = color; 978 } setFoldedColumnLineColor(const QColor & color)979 void setFoldedColumnLineColor(const QColor &color) { 980 m_foldedColumnLineColor = color; 981 } 982 // Xsheet Column Name/Drag Bar setXsheetColumnNameBgColor(const QColor & color)983 void setXsheetColumnNameBgColor(const QColor &color) { 984 m_xsheetColumnNameBgColor = color; 985 } setXsheetDragBarHighlightColor(const QColor & color)986 void setXsheetDragBarHighlightColor(const QColor &color) { 987 m_xsheetDragBarHighlightColor = color; 988 } getXsheetColumnNameBgColor()989 QColor getXsheetColumnNameBgColor() const { 990 return m_xsheetColumnNameBgColor; 991 } getXsheetDragBarHighlightColor()992 QColor getXsheetDragBarHighlightColor() const { 993 return m_xsheetDragBarHighlightColor; 994 } 995 996 // Xsheet Active Camera Color setActiveCameraColor(const QColor & color)997 void setActiveCameraColor(const QColor &color) { 998 m_ActiveCameraColor = color; 999 } setSelectedActiveCameraColor(const QColor & color)1000 void setSelectedActiveCameraColor(const QColor &color) { 1001 m_SelectedActiveCameraColor = color; 1002 } getActiveCameraColor()1003 QColor getActiveCameraColor() const { return m_ActiveCameraColor; } getSelectedActiveCameraColor()1004 QColor getSelectedActiveCameraColor() const { 1005 return m_SelectedActiveCameraColor; 1006 } 1007 // Xsheet Other Camera Color setOtherCameraColor(const QColor & color)1008 void setOtherCameraColor(const QColor &color) { m_OtherCameraColor = color; } setSelectedOtherCameraColor(const QColor & color)1009 void setSelectedOtherCameraColor(const QColor &color) { 1010 m_SelectedOtherCameraColor = color; 1011 } getOtherCameraColor()1012 QColor getOtherCameraColor() const { return m_OtherCameraColor; } getSelectedOtherCameraColor()1013 QColor getSelectedOtherCameraColor() const { 1014 return m_SelectedOtherCameraColor; 1015 } 1016 1017 // Xsheet Preview Button setXsheetPreviewButtonBgOnColor(const QColor & color)1018 void setXsheetPreviewButtonBgOnColor(const QColor &color) { 1019 m_xsheetPreviewButtonBgOnColor = color; 1020 } setXsheetPreviewButtonOnImage(const QImage & image)1021 void setXsheetPreviewButtonOnImage(const QImage &image) { 1022 m_xsheetPreviewButtonOnImage = image; 1023 } setXsheetPreviewButtonBgOffColor(const QColor & color)1024 void setXsheetPreviewButtonBgOffColor(const QColor &color) { 1025 m_xsheetPreviewButtonBgOffColor = color; 1026 } setXsheetPreviewButtonOffImage(const QImage & image)1027 void setXsheetPreviewButtonOffImage(const QImage &image) { 1028 m_xsheetPreviewButtonOffImage = image; 1029 } getXsheetPreviewButtonBgOnColor()1030 QColor getXsheetPreviewButtonBgOnColor() const { 1031 return m_xsheetPreviewButtonBgOnColor; 1032 } getXsheetPreviewButtonOnImage()1033 QImage getXsheetPreviewButtonOnImage() const { 1034 return m_xsheetPreviewButtonOnImage; 1035 } getXsheetPreviewButtonBgOffColor()1036 QColor getXsheetPreviewButtonBgOffColor() const { 1037 return m_xsheetPreviewButtonBgOffColor; 1038 } getXsheetPreviewButtonOffImage()1039 QImage getXsheetPreviewButtonOffImage() const { 1040 return m_xsheetPreviewButtonOffImage; 1041 } 1042 // Xsheet Camstand Button setXsheetCamstandButtonBgOnColor(const QColor & color)1043 void setXsheetCamstandButtonBgOnColor(const QColor &color) { 1044 m_xsheetCamstandButtonBgOnColor = color; 1045 } setXsheetCamstandButtonOnImage(const QImage & image)1046 void setXsheetCamstandButtonOnImage(const QImage &image) { 1047 m_xsheetCamstandButtonOnImage = image; 1048 } setXsheetCamstandButtonTranspImage(const QImage & image)1049 void setXsheetCamstandButtonTranspImage(const QImage &image) { 1050 m_xsheetCamstandButtonTranspImage = image; 1051 } setXsheetCamstandButtonBgOffColor(const QColor & color)1052 void setXsheetCamstandButtonBgOffColor(const QColor &color) { 1053 m_xsheetCamstandButtonBgOffColor = color; 1054 } setXsheetCamstandButtonOffImage(const QImage & image)1055 void setXsheetCamstandButtonOffImage(const QImage &image) { 1056 m_xsheetCamstandButtonOffImage = image; 1057 } getXsheetCamstandButtonBgOnColor()1058 QColor getXsheetCamstandButtonBgOnColor() const { 1059 return m_xsheetCamstandButtonBgOnColor; 1060 } getXsheetCamstandButtonOnImage()1061 QImage getXsheetCamstandButtonOnImage() const { 1062 return m_xsheetCamstandButtonOnImage; 1063 } getXsheetCamstandButtonTranspImage()1064 QImage getXsheetCamstandButtonTranspImage() const { 1065 return m_xsheetCamstandButtonTranspImage; 1066 } getXsheetCamstandButtonBgOffColor()1067 QColor getXsheetCamstandButtonBgOffColor() const { 1068 return m_xsheetCamstandButtonBgOffColor; 1069 } getXsheetCamstandButtonOffImage()1070 QImage getXsheetCamstandButtonOffImage() const { 1071 return m_xsheetCamstandButtonOffImage; 1072 } 1073 // XsheetLock Button setXsheetLockButtonBgOnColor(const QColor & color)1074 void setXsheetLockButtonBgOnColor(const QColor &color) { 1075 m_xsheetLockButtonBgOnColor = color; 1076 } setXsheetLockButtonOnImage(const QImage & image)1077 void setXsheetLockButtonOnImage(const QImage &image) { 1078 m_xsheetLockButtonOnImage = image; 1079 } setXsheetLockButtonBgOffColor(const QColor & color)1080 void setXsheetLockButtonBgOffColor(const QColor &color) { 1081 m_xsheetLockButtonBgOffColor = color; 1082 } setXsheetLockButtonOffImage(const QImage & image)1083 void setXsheetLockButtonOffImage(const QImage &image) { 1084 m_xsheetLockButtonOffImage = image; 1085 } getXsheetLockButtonBgOnColor()1086 QColor getXsheetLockButtonBgOnColor() const { 1087 return m_xsheetLockButtonBgOnColor; 1088 } getXsheetLockButtonOnImage()1089 QImage getXsheetLockButtonOnImage() const { 1090 return m_xsheetLockButtonOnImage; 1091 } getXsheetLockButtonBgOffColor()1092 QColor getXsheetLockButtonBgOffColor() const { 1093 return m_xsheetLockButtonBgOffColor; 1094 } getXsheetLockButtonOffImage()1095 QImage getXsheetLockButtonOffImage() const { 1096 return m_xsheetLockButtonOffImage; 1097 } 1098 // Xsheet Config Button setXsheetConfigButtonBgColor(const QColor & color)1099 void setXsheetConfigButtonBgColor(const QColor &color) { 1100 m_xsheetConfigButtonBgColor = color; 1101 } setXsheetConfigButtonImage(const QImage & image)1102 void setXsheetConfigButtonImage(const QImage &image) { 1103 m_xsheetConfigButtonImage = image; 1104 } getXsheetConfigButtonBgColor()1105 QColor getXsheetConfigButtonBgColor() const { 1106 return m_xsheetConfigButtonBgColor; 1107 } getXsheetConfigButtonImage()1108 QImage getXsheetConfigButtonImage() const { 1109 return m_xsheetConfigButtonImage; 1110 } 1111 // Timeline Preview Button setTimelinePreviewButtonBgOnColor(const QColor & color)1112 void setTimelinePreviewButtonBgOnColor(const QColor &color) { 1113 m_timelinePreviewButtonBgOnColor = color; 1114 } setTimelinePreviewButtonOnImage(const QImage & image)1115 void setTimelinePreviewButtonOnImage(const QImage &image) { 1116 m_timelinePreviewButtonOnImage = image; 1117 } setTimelinePreviewButtonBgOffColor(const QColor & color)1118 void setTimelinePreviewButtonBgOffColor(const QColor &color) { 1119 m_timelinePreviewButtonBgOffColor = color; 1120 } setTimelinePreviewButtonOffImage(const QImage & image)1121 void setTimelinePreviewButtonOffImage(const QImage &image) { 1122 m_timelinePreviewButtonOffImage = image; 1123 } getTimelinePreviewButtonBgOnColor()1124 QColor getTimelinePreviewButtonBgOnColor() const { 1125 return m_timelinePreviewButtonBgOnColor; 1126 } getTimelinePreviewButtonOnImage()1127 QImage getTimelinePreviewButtonOnImage() const { 1128 return m_timelinePreviewButtonOnImage; 1129 } getTimelinePreviewButtonBgOffColor()1130 QColor getTimelinePreviewButtonBgOffColor() const { 1131 return m_timelinePreviewButtonBgOffColor; 1132 } getTimelinePreviewButtonOffImage()1133 QImage getTimelinePreviewButtonOffImage() const { 1134 return m_timelinePreviewButtonOffImage; 1135 } 1136 // Timeline Camstand Button setTimelineCamstandButtonBgOnColor(const QColor & color)1137 void setTimelineCamstandButtonBgOnColor(const QColor &color) { 1138 m_timelineCamstandButtonBgOnColor = color; 1139 } setTimelineCamstandButtonOnImage(const QImage & image)1140 void setTimelineCamstandButtonOnImage(const QImage &image) { 1141 m_timelineCamstandButtonOnImage = image; 1142 } setTimelineCamstandButtonTranspImage(const QImage & image)1143 void setTimelineCamstandButtonTranspImage(const QImage &image) { 1144 m_timelineCamstandButtonTranspImage = image; 1145 } setTimelineCamstandButtonBgOffColor(const QColor & color)1146 void setTimelineCamstandButtonBgOffColor(const QColor &color) { 1147 m_timelineCamstandButtonBgOffColor = color; 1148 } setTimelineCamstandButtonOffImage(const QImage & image)1149 void setTimelineCamstandButtonOffImage(const QImage &image) { 1150 m_timelineCamstandButtonOffImage = image; 1151 } getTimelineCamstandButtonBgOnColor()1152 QColor getTimelineCamstandButtonBgOnColor() const { 1153 return m_timelineCamstandButtonBgOnColor; 1154 } getTimelineCamstandButtonOnImage()1155 QImage getTimelineCamstandButtonOnImage() const { 1156 return m_timelineCamstandButtonOnImage; 1157 } getTimelineCamstandButtonTranspImage()1158 QImage getTimelineCamstandButtonTranspImage() const { 1159 return m_timelineCamstandButtonTranspImage; 1160 } getTimelineCamstandButtonBgOffColor()1161 QColor getTimelineCamstandButtonBgOffColor() const { 1162 return m_timelineCamstandButtonBgOffColor; 1163 } getTimelineCamstandButtonOffImage()1164 QImage getTimelineCamstandButtonOffImage() const { 1165 return m_timelineCamstandButtonOffImage; 1166 } 1167 // Timeline Lock Button setTimelineLockButtonBgOnColor(const QColor & color)1168 void setTimelineLockButtonBgOnColor(const QColor &color) { 1169 m_timelineLockButtonBgOnColor = color; 1170 } setTimelineLockButtonOnImage(const QImage & image)1171 void setTimelineLockButtonOnImage(const QImage &image) { 1172 m_timelineLockButtonOnImage = image; 1173 } setTimelineLockButtonBgOffColor(const QColor & color)1174 void setTimelineLockButtonBgOffColor(const QColor &color) { 1175 m_timelineLockButtonBgOffColor = color; 1176 } setTimelineLockButtonOffImage(const QImage & image)1177 void setTimelineLockButtonOffImage(const QImage &image) { 1178 m_timelineLockButtonOffImage = image; 1179 } getTimelineLockButtonBgOnColor()1180 QColor getTimelineLockButtonBgOnColor() const { 1181 return m_timelineLockButtonBgOnColor; 1182 } getTimelineLockButtonOnImage()1183 QImage getTimelineLockButtonOnImage() const { 1184 return m_timelineLockButtonOnImage; 1185 } getTimelineLockButtonBgOffColor()1186 QColor getTimelineLockButtonBgOffColor() const { 1187 return m_timelineLockButtonBgOffColor; 1188 } getTimelineLockButtonOffImage()1189 QImage getTimelineLockButtonOffImage() const { 1190 return m_timelineLockButtonOffImage; 1191 } 1192 // Timeline Config Button setTimelineConfigButtonBgColor(const QColor & color)1193 void setTimelineConfigButtonBgColor(const QColor &color) { 1194 m_timelineConfigButtonBgColor = color; 1195 } setTimelineConfigButtonImage(const QImage & image)1196 void setTimelineConfigButtonImage(const QImage &image) { 1197 m_timelineConfigButtonImage = image; 1198 } getTimelineConfigButtonBgColor()1199 QColor getTimelineConfigButtonBgColor() const { 1200 return m_timelineConfigButtonBgColor; 1201 } getTimelineConfigButtonImage()1202 QImage getTimelineConfigButtonImage() const { 1203 return m_timelineConfigButtonImage; 1204 } 1205 // Layer Header icons setLayerHeaderPreviewImage(const QImage & image)1206 void setLayerHeaderPreviewImage(const QImage &image) { 1207 m_layerHeaderPreviewImage = image; 1208 } setLayerHeaderPreviewOverImage(const QImage & image)1209 void setLayerHeaderPreviewOverImage(const QImage &image) { 1210 m_layerHeaderPreviewOverImage = image; 1211 } setLayerHeaderCamstandImage(const QImage & image)1212 void setLayerHeaderCamstandImage(const QImage &image) { 1213 m_layerHeaderCamstandImage = image; 1214 } setLayerHeaderCamstandOverImage(const QImage & image)1215 void setLayerHeaderCamstandOverImage(const QImage &image) { 1216 m_layerHeaderCamstandOverImage = image; 1217 } setLayerHeaderLockImage(const QImage & image)1218 void setLayerHeaderLockImage(const QImage &image) { 1219 m_layerHeaderLockImage = image; 1220 } setLayerHeaderLockOverImage(const QImage & image)1221 void setLayerHeaderLockOverImage(const QImage &image) { 1222 m_layerHeaderLockOverImage = image; 1223 } getLayerHeaderPreviewImage()1224 QImage getLayerHeaderPreviewImage() const { 1225 return m_layerHeaderPreviewImage; 1226 } getLayerHeaderPreviewOverImage()1227 QImage getLayerHeaderPreviewOverImage() const { 1228 return m_layerHeaderPreviewOverImage; 1229 } getLayerHeaderCamstandImage()1230 QImage getLayerHeaderCamstandImage() const { 1231 return m_layerHeaderCamstandImage; 1232 } getLayerHeaderCamstandOverImage()1233 QImage getLayerHeaderCamstandOverImage() const { 1234 return m_layerHeaderCamstandOverImage; 1235 } getLayerHeaderLockImage()1236 QImage getLayerHeaderLockImage() const { return m_layerHeaderLockImage; } getLayerHeaderLockOverImage()1237 QImage getLayerHeaderLockOverImage() const { 1238 return m_layerHeaderLockOverImage; 1239 } 1240 1241 void getButton(int &btype, QColor &bgColor, QImage &iconImage, 1242 bool isTimeline = false); 1243 1244 // convert the last one digit of the frame number to alphabet 1245 // Ex. 12 -> 1B 21 -> 2A 30 -> 3 1246 QString getFrameNumberWithLetters(int frame); 1247 1248 void setFrameDisplayStyle(FrameDisplayStyle style); getFrameDisplayStyle()1249 FrameDisplayStyle getFrameDisplayStyle() { return m_frameDisplayStyle; } 1250 1251 // SaveLoadQSettings 1252 virtual void save(QSettings &settings) const override; 1253 virtual void load(QSettings &settings) override; 1254 getXsheetLayout()1255 QString getXsheetLayout() const { return m_xsheetLayout; } 1256 1257 protected: 1258 void scrollToColumn(int col); 1259 void scrollToHorizontalRange(int x0, int x1); 1260 void scrollToRow(int row); 1261 void scrollToVerticalRange(int y0, int y1); 1262 1263 void showEvent(QShowEvent *) override; 1264 void hideEvent(QHideEvent *) override; 1265 void resizeEvent(QResizeEvent *event) override; 1266 void keyPressEvent(QKeyEvent *event) override; 1267 // display the upper-directional smart tab only when the ctrl key is pressed 1268 void keyReleaseEvent(QKeyEvent *event) override; 1269 void enterEvent(QEvent *) override; 1270 void wheelEvent(QWheelEvent *event) override; 1271 void timerEvent(QTimerEvent *) override; 1272 1273 void disconnectScrollBars(); 1274 void connectScrollBars(); 1275 void connectOrDisconnectScrollBars(bool toConnect); 1276 void connectOrDisconnect(bool toConnect, QWidget *sender, const char *signal, 1277 QWidget *receiver, const char *slot); 1278 signals: 1279 void orientationChanged(const Orientation *newOrientation); 1280 1281 public slots: 1282 void positionSections(); 1283 void onSceneSwitched(); 1284 void onXsheetChanged(); 1285 void onCurrentFrameSwitched(); 1286 void onPlayingStatusChanged(); 1287 void onCurrentColumnSwitched(); 1288 void onSelectionSwitched(TSelection *oldSelection, TSelection *newSelection); 1289 1290 void onSelectionChanged(TSelection *selection); 1291 1292 void updateAllAree(bool isDragging = false); 1293 void updateColumnArea(); 1294 void updateCellColumnAree(); 1295 void updateCellRowAree(); 1296 1297 void onScrubStopped(); 1298 void onPreferenceChanged(const QString &prefName); 1299 //! Aggiorna il "titolo" del widget. 1300 void changeWindowTitle(); 1301 1302 void resetXsheetNotes(); 1303 1304 void onOrientationChanged(const Orientation *newOrientation); 1305 void onPrepareToScrollOffset(const QPoint &offset); 1306 void onZoomScrollAdjust(QPoint &offset, bool toZoom); 1307 setFrameZoomFactor(int f)1308 void setFrameZoomFactor(int f) { m_frameZoomFactor = f; } 1309 int getFrameZoomFactor() const; 1310 int getFrameZoomAdjustment(); 1311 1312 void zoomOnFrame(int frame, int factor); 1313 }; 1314 1315 #endif // XSHEETVIEWER_H 1316