Package cx.fbn.nevernote.dialog

Source Code of cx.fbn.nevernote.dialog.ThumbnailViewer

/*
* This file is part of NixNote
* Copyright 2009 Randy Baumgarte
*
* This file may be licensed under the terms of of the
* GNU General Public License Version 2 (the ``GPL'').
*
* Software distributed under the License is distributed
* on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
* express or implied. See the GPL for the specific language
* governing rights and limitations.
*
* You should have received a copy of the GPL along with this
* program. If not, go to http://www.gnu.org/licenses/gpl.html
* or write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/

package cx.fbn.nevernote.dialog;

//**********************************************
//**********************************************
//* This isn't really used but at one time it
//* was used to create a full page preview.
//**********************************************
//**********************************************

import java.util.List;

import com.trolltech.qt.core.QPoint;
import com.trolltech.qt.core.QRect;
import com.trolltech.qt.core.Qt;
import com.trolltech.qt.core.Qt.WindowModality;
import com.trolltech.qt.gui.QApplication;
import com.trolltech.qt.gui.QColor;
import com.trolltech.qt.gui.QDesktopWidget;
import com.trolltech.qt.gui.QDialog;
import com.trolltech.qt.gui.QGridLayout;
import com.trolltech.qt.gui.QImage;
import com.trolltech.qt.gui.QKeyEvent;
import com.trolltech.qt.gui.QLabel;
import com.trolltech.qt.gui.QMouseEvent;
import com.trolltech.qt.gui.QPaintEvent;
import com.trolltech.qt.gui.QPainter;
import com.trolltech.qt.gui.QPalette;
import com.trolltech.qt.gui.QPalette.ColorRole;
import com.trolltech.qt.gui.QPixmap;
import com.trolltech.qt.gui.QWheelEvent;
public class ThumbnailViewer extends QDialog {
  private String thumbnail;
  private final QLabel picture;
  QGridLayout grid = new QGridLayout();
  public Signal0 upArrow;
  public Signal0 downArrow;
  public Signal0 leftArrow;
  public Signal0 rightArrow;
  private QImage  image;
  private List<String> guids;
 

  public ThumbnailViewer() {
    this.setVisible(false);
   
    leftArrow = new Signal0();
    rightArrow = new Signal0();
    upArrow = new Signal0();
    downArrow = new Signal0();


    setAutoFillBackground(true);
    QPalette palette = new QPalette(palette());
      // Set background colour to black
      palette.setColor(ColorRole.Base, QColor.black);
      setPalette(palette);
     
    grid = new QGridLayout();
    setLayout(grid);
   
   
    picture = new QLabel();
/*   
    QLabel left = new QLabel();
    QLabel right = new QLabel();
   
    grid.addWidget(left, 0,0);
    grid.addWidget(picture,0,1);
    grid.addWidget(right, 0,2);
    grid.setWidgetSpacing(1);
    grid.setContentsMargins(10, 10,  -10, -10);
*/   
   
    setWindowModality(WindowModality.ApplicationModal);
    setWindowFlags(Qt.WindowType.FramelessWindowHint);
    setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground);
//    setBackgroundRole(ColorRole.Shadow);
//    setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose);
//    showFullScreen();
//    this.hide();

  }
  public void setThumbnail(String thumb) {
    thumbnail = thumb;
    image = new QImage(thumbnail);
    picture.setPixmap(QPixmap.fromImage(image));
  }
  public void setThumbnail(QImage i) {
    image = i;
    picture.setPixmap(QPixmap.fromImage(image));
  }
 

  @Override
  public void keyPressEvent(QKeyEvent e) {
    if (e.key() == Qt.Key.Key_Up.value() || e.key() == Qt.Key.Key_Right.value()) {
      upArrow.emit();
    }
    if (e.key() == Qt.Key.Key_Down.value() || e.key() == Qt.Key.Key_Left.value()) {
      downArrow.emit();
    }

    super.keyPressEvent(e);
  }
 
 
  @Override
  public void mousePressEvent(QMouseEvent e) {
    if (e.button() == Qt.MouseButton.LeftButton)
      close();
  }
 
  @Override
  public void wheelEvent(QWheelEvent e) {
    int numDegrees = e.delta() / 8;
        int numSteps = numDegrees / 15;
       
        if (e.orientation().equals(Qt.Orientation.Vertical)) {
          if (numSteps > 0) {
            for (int i=0; i<numSteps; i++) {
              upArrow.emit();
              repaint();
            }
          }
          if (numSteps < 0) {
            for (int i=numSteps; i<0; i++) {
              downArrow.emit();
              repaint();
            }
          }
        }
  }
 
  @Override
  public void paintEvent(QPaintEvent e) {
    QDesktopWidget desktop = QApplication.desktop();
    int screen = desktop.screenNumber();
    this.setMaximumSize(desktop.size());
    this.setMinimumSize(desktop.size());
    resize(desktop.size());
   
    QPainter painter = new QPainter(this);
   
    painter.fillRect(desktop.screenGeometry(screen), QColor.black);

    QRect availGeo = desktop.availableGeometry(screen);
   
    int x1 = (availGeo.width()/2)-(image.size().width()/2);
    int y1 = (availGeo.height()/2)-(image.size().height()/2);
   
    painter.drawImage(new QPoint(x1,y1), image);
  }


  public List<String> getGuids() {
    return guids;
  }
  public void setGuids(List<String> g) {
    guids = g;
  }


}
TOP

Related Classes of cx.fbn.nevernote.dialog.ThumbnailViewer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.