Shinya Kitaoka 810553
#pragma once
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef COLORMODELVIEWER_H
Toshihiro Shimizu 890ddd
#define COLORMODELVIEWER_H
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "flipbook.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
// ColorModelViewer
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class ColorModelViewer final : public FlipBook {
Shinya Kitaoka 120a6e
  Q_OBJECT
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  /*-- ツールのタイプを手元に持っておき、取得の手間を省く --*/
Shinya Kitaoka 120a6e
  int m_mode;
Shinya Kitaoka 120a6e
  /*-- ColorModelのファイルパスを覚えておいて、UseCurrentFrame間の移動に対応
Shinya Kitaoka 120a6e
   * --*/
Shinya Kitaoka 120a6e
  TFilePath m_currentRefImgPath;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  ColorModelViewer(QWidget *parent = 0);
Shinya Kitaoka 120a6e
  ~ColorModelViewer();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
protected:
Shinya Kitaoka 473e70
  void dragEnterEvent(QDragEnterEvent *event) override;
Shinya Kitaoka 473e70
  void dropEvent(QDropEvent *event) override;
Shinya Kitaoka 120a6e
  void loadImage(const TFilePath &fp);
Shinya Kitaoka 120a6e
  void resetImageViewer() {
Shinya Kitaoka 120a6e
    clearCache();
Shinya Kitaoka 120a6e
    m_levels.clear();
Shinya Kitaoka 120a6e
    m_title = "";
Shinya Kitaoka 120a6e
    m_imageViewer->setImage(getCurrentImage(0));
Shinya Kitaoka 120a6e
    m_currentRefImgPath = TFilePath();
Shinya Kitaoka 120a6e
    m_palette           = 0;
Shinya Kitaoka 120a6e
  }
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  void contextMenuEvent(QContextMenuEvent *event) override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  void mousePressEvent(QMouseEvent *) override;
Shinya Kitaoka 473e70
  void mouseMoveEvent(QMouseEvent *) override;
Shinya Kitaoka 120a6e
  void pick(const QPoint &p);
Shinya Kitaoka 38fd86
  void hideEvent(QHideEvent *e)
Shinya Kitaoka 38fd86
      override;  // to avoid calling the hideEvent of class Flipbook!
Shinya Kitaoka 473e70
  void showEvent(QShowEvent *e) override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  /*-
Shinya Kitaoka 120a6e
   * UseCurrentFrameのLevelに移動してきたときに、改めてCurrentFrameを格納しなおす
Shinya Kitaoka 120a6e
   * -*/
Shinya Kitaoka 120a6e
  void reloadCurrentFrame();
shun_iwasawa 06bcc2
Toshihiro Shimizu 890ddd
protected slots:
Shinya Kitaoka 120a6e
  void showCurrentImage();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void loadCurrentFrame();
Shinya Kitaoka 120a6e
  void removeColorModel();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void onRefImageNotFound();
Shinya Kitaoka 120a6e
  void updateViewer();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  /*-
Shinya Kitaoka 120a6e
   * ツールのTypeに合わせてPickのタイプも変える。それにあわせカーソルも切り替える
Shinya Kitaoka 120a6e
   * -*/
Shinya Kitaoka 120a6e
  void changePickType();
Toshihiro Shimizu 890ddd
shun_iwasawa 9cbd0e
  void repickFromColorModel();
shun_iwasawa 9cbd0e
Toshihiro Shimizu 890ddd
signals:
Shinya Kitaoka 120a6e
  void refImageNotFound();
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
#endif  // COLORMODELVIEWER_H