Package cx.fbn.nevernote.gui

Source Code of cx.fbn.nevernote.gui.TableViewHeader

package cx.fbn.nevernote.gui;

import java.util.List;

import com.trolltech.qt.core.Qt.Orientation;
import com.trolltech.qt.gui.QAction;
import com.trolltech.qt.gui.QContextMenuEvent;
import com.trolltech.qt.gui.QHeaderView;
import com.trolltech.qt.gui.QMenu;
import com.trolltech.qt.gui.QWidget;

import cx.fbn.nevernote.Global;

public class TableViewHeader extends QHeaderView {
  public QMenu contextMenu;
  public QAction createdDateAction;
  public QAction changedDateAction;
  public QAction subjectDateAction;
  public QAction tagsAction;
  public QAction titleAction;
  public QAction notebookAction;
  public QAction synchronizedAction;
  public QAction authorAction;
  public QAction urlAction;
  public QAction thumbnailAction;
  public QAction guidAction;
  public QAction pinnedAction;
 

  public TableViewHeader(Orientation orientation, QWidget parent) {
    super(orientation, parent);
   
    setSortIndicatorShown(true);
    setClickable(true);
   
    contextMenu = new QMenu();

    titleAction = new QAction(this);
    titleAction.setText(tr("Title"));
    titleAction.setCheckable(true);
    contextMenu.addAction(titleAction);
   
    createdDateAction = new QAction(this);
    createdDateAction.setText(tr("Date Created"));
    createdDateAction.setCheckable(true);
    contextMenu.addAction(createdDateAction);
   
    changedDateAction = new QAction(this);
    changedDateAction.setText(tr("Date Changed"));
    changedDateAction.setCheckable(true);
    contextMenu.addAction(changedDateAction);
   
    subjectDateAction = new QAction(this);
    subjectDateAction.setText(tr("Subject Date"));
    subjectDateAction.setCheckable(true);
    contextMenu.addAction(subjectDateAction);
   
    tagsAction = new QAction(this);
    tagsAction.setText(tr("Tags"));
    tagsAction.setCheckable(true);
    contextMenu.addAction(tagsAction);
   
    notebookAction = new QAction(this);
    notebookAction.setText(tr("Notebook"));
    notebookAction.setCheckable(true);
    contextMenu.addAction(notebookAction);
   
    synchronizedAction = new QAction(this);
    synchronizedAction.setText(tr("Sync"));
    synchronizedAction.setCheckable(true);
    contextMenu.addAction(synchronizedAction);
   
    authorAction = new QAction(this);
    authorAction.setText(tr("Author"));
    authorAction.setCheckable(true);
    contextMenu.addAction(authorAction);
   
    urlAction = new QAction(this);
    urlAction.setText(tr("Source URL"));
    urlAction.setCheckable(true);
    contextMenu.addAction(urlAction);
   
    thumbnailAction = new QAction(this);
    thumbnailAction.setText(tr("Thumbnail"));
    thumbnailAction.setCheckable(true);
    contextMenu.addAction(thumbnailAction);
   
    pinnedAction = new QAction(this);
    pinnedAction.setText(tr("Pinned"));
    pinnedAction.setCheckable(true);
    contextMenu.addAction(pinnedAction);
   
   
    guidAction = new QAction(this);
    guidAction.setText(tr("Guid"));
    guidAction.setCheckable(true);
    setMouseTracking(true);
    sectionEntered.connect(this, "sectionClicked(Integer)");
   
    checkActions();
  }

  private void checkActions() {
    titleAction.setChecked(Global.isColumnVisible("title"));
    createdDateAction.setChecked(Global.isColumnVisible("dateCreated"));
    changedDateAction.setChecked(Global.isColumnVisible("dateChanged"));
    subjectDateAction.setChecked(Global.isColumnVisible("dateSubject"));
    tagsAction.setChecked(Global.isColumnVisible("tags"));
    notebookAction.setChecked(Global.isColumnVisible("notebook"));
    synchronizedAction.setChecked(Global.isColumnVisible("synchronized"));
    authorAction.setChecked(Global.isColumnVisible("author"));
    urlAction.setChecked(Global.isColumnVisible("sourceUrl"));
    thumbnailAction.setChecked(Global.isColumnVisible("thumbnail"));
    pinnedAction.setChecked(Global.isColumnVisible("pinned"));
    guidAction.setChecked(Global.isColumnVisible("guid"));
  }
 
  public void sectionClicked(Integer position) {
    if (position == Global.noteTableThumbnailPosition)
      setClickable(false);
    else
      setClickable(true);
  }
 
  @Override
  public void contextMenuEvent(QContextMenuEvent event) {
    checkActions();
    List<QAction> actions = contextMenu.actions();
    int count = 0;
    for (int i=0; i<actions.size(); i++) {
      actions.get(i).setEnabled(true);
      if (actions.get(i).isChecked())
        count++;
    }
    if (count <= 1) {
      for (int i=0; i<actions.size(); i++) {
        if (actions.get(i).isChecked())
          actions.get(i).setEnabled(false);
      }
    }
    contextMenu.exec(event.globalPos());
  }
}
TOP

Related Classes of cx.fbn.nevernote.gui.TableViewHeader

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.