Package cx.fbn.nevernote.dialog

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

/*
* 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;

import java.util.ArrayList;
import java.util.List;

import com.trolltech.qt.core.Qt;
import com.trolltech.qt.gui.QApplication;
import com.trolltech.qt.gui.QCheckBox;
import com.trolltech.qt.gui.QComboBox;
import com.trolltech.qt.gui.QFormLayout;
import com.trolltech.qt.gui.QGroupBox;
import com.trolltech.qt.gui.QHBoxLayout;
import com.trolltech.qt.gui.QLabel;
import com.trolltech.qt.gui.QScrollArea;
import com.trolltech.qt.gui.QSpinBox;
import com.trolltech.qt.gui.QStyleFactory;
import com.trolltech.qt.gui.QSystemTrayIcon;
import com.trolltech.qt.gui.QVBoxLayout;
import com.trolltech.qt.gui.QWidget;

import cx.fbn.nevernote.Global;

public class ConfigAppearancePage extends QWidget {
  private final QComboBox dateFormat;
  private final QComboBox timeFormat;
  private final QComboBox styleFormat;
  private final QComboBox  tagBehavior;
  private final QCheckBox standardPalette;
  private final QCheckBox  showSplashScreen;
  private final QCheckBox showTrayIcon;
  private final QCheckBox verifyDelete;
  private final QCheckBox  pdfPreview;
  private final QCheckBox anyTagSelection;
  private final QCheckBox  checkForUpdates;
  private final QCheckBox newNoteWithTags;
  private final QCheckBox  mimicEvernote;
  private final QCheckBox  startMinimized;
  private final QCheckBox minimizeOnClose;
  private final QCheckBox includeTagChildren;
  private final QCheckBox displayRightToLeft;
  private final QComboBox startupNotebook;
  private final QSpinBox autoSaveInterval;
 
  private final List<String> tformats;
  private final List<String> dformats;
 
  public ConfigAppearancePage(QWidget parent) {
//    super(parent);
   
    dformats = new ArrayList<String>();
    tformats = new ArrayList<String>();
   
    dformats.add("MM/dd/yy - 02/03/09");
    dformats.add("MM/dd/yyyy - 02/03/2009");
    dformats.add("M/dd/yyyy - 2/03/2009");
    dformats.add("M/d/yyyy - 2/3/2009");
    dformats.add("dd/MM/yy - 03/02/09");
    dformats.add("d/M/yy - 3/2/09");
    dformats.add("dd/MM/yyyy - 03/02/2009");
    dformats.add("d/M/yyyy - 3/2/2009");
    dformats.add("yyyy/MM/dd - 2009/02/03");
    dformats.add("yy/MM/dd - 09/02/03");
   
    tformats.add("HH:mm:ss - 18:13:01");
    tformats.add("HH:mm:ss a - 18:13:01 pm");
    tformats.add("HH:mm - 18:13");
    tformats.add("HH:mm a - 18:13 pm");
    tformats.add("hh:mm:ss - 06:13:01");
    tformats.add("hh:mm:ss a - 06:13:01 pm");
    tformats.add("h:mm:ss a - 6:13:01 pm");
    tformats.add("hh:mm - 06:13");
    tformats.add("hh:mm a - 06:13 pm");
    tformats.add("h:mm a - 6:13 pm");

   
    // Style sheet formats
    List<String> styles = QStyleFactory.keys();
    QGroupBox styleGroup = new QGroupBox(tr("GUI Style"));
    styleFormat = new QComboBox();       
    styleFormat.addItems(styles);
    styleFormat.activated.connect(this, "styleSelected(String)");
   
    standardPalette = new QCheckBox();
    standardPalette.setText(tr("Use standard palette"));
    standardPalette.clicked.connect(this, "standardPaletteChanged()");

    QFormLayout styleLayout = new QFormLayout();
    styleLayout.addWidget(styleFormat);
    styleLayout.addWidget(standardPalette);
   
    styleGroup.setLayout(styleLayout);

    QGroupBox tagBehaviorGroup = new QGroupBox(tr("Tag Behavior"));
    tagBehavior = new QComboBox();
    tagBehavior.addItem(tr("Do nothing"),"DoNothing");
    tagBehavior.addItem(tr("Count tags & do not hide inactive"),"NoHideInactiveCount");
    tagBehavior.addItem(tr("Count tags & hide inactive"),"HideInactiveCount");
    tagBehavior.addItem(tr("Color active tags"),"ColorActive");
   
    QFormLayout tagLayout = new QFormLayout();
    tagLayout.addWidget(tagBehavior);
    tagBehaviorGroup.setLayout(tagLayout);
   
   
   
    // Date/Time settings
    QGroupBox datetimeGroup = new QGroupBox(tr("Date/Time Format"));
    dateFormat = new QComboBox();       
    for (int i=0; i<dformats.size(); i++) {
      dateFormat.addItem(tr(dformats.get(i)));
    }
   
    timeFormat = new QComboBox();   
    for (int i=0; i<tformats.size(); i++) {
      timeFormat.addItem(tr(tformats.get(i)));
    }

    QFormLayout formatLayout = new QFormLayout();
    formatLayout.addWidget(dateFormat);
    formatLayout.addWidget(timeFormat);
    datetimeGroup.setLayout(formatLayout);
   
    mimicEvernote = new QCheckBox(tr("Mimic Evernote Selection Behavior (Requires Restart)"));
    showSplashScreen = new QCheckBox(tr("Show Splash Screen on Startup"));
    showTrayIcon = new QCheckBox(tr("Minimize To Tray"));
    minimizeOnClose = new QCheckBox(tr("Close To Tray"));
    if (!QSystemTrayIcon.isSystemTrayAvailable()) {
      showTrayIcon.setEnabled(false);
      minimizeOnClose.setEnabled(false);
    }
    verifyDelete = new QCheckBox(tr("Verify Deletes"));
    startMinimized = new QCheckBox(tr("Start Minimized"));
    pdfPreview = new QCheckBox(tr("Display PDF Documents Inline"));
    checkForUpdates = new QCheckBox(tr("Check For Updates At Startup"));
    newNoteWithTags = new QCheckBox(tr("Create New Notes With Selected Tags"));
    anyTagSelection = new QCheckBox(tr("Display Notes Matching Any Selected Tags"));
    includeTagChildren = new QCheckBox(tr("Include Children In Tag Selection"));
    displayRightToLeft = new QCheckBox(tr("Display Notes Right-To-Left"));
   
    QHBoxLayout startupNotebookLayout = new QHBoxLayout();
    startupNotebook = new QComboBox();
    startupNotebook.addItem(tr("All Notebooks"), "AllNotebooks");
    startupNotebook.addItem(tr("Default Notebook"), "DefaultNotebook");
    startupNotebookLayout.addWidget(new QLabel(tr("Startup Notebook")));
    startupNotebookLayout.addWidget(startupNotebook);
    startupNotebookLayout.addStretch();
 
   
    QHBoxLayout autoSaveLayout = new QHBoxLayout();
    autoSaveLayout.addWidget(new QLabel(tr("Automatic Save Interval (in Minutes)")));
    autoSaveInterval = new QSpinBox();
    autoSaveLayout.addWidget(autoSaveInterval);
    autoSaveInterval.setMaximum(1440);
    autoSaveInterval.setMinimum(0);
   
    QVBoxLayout mainLayout = new QVBoxLayout(this);
    mainLayout.addWidget(styleGroup);
    mainLayout.addWidget(datetimeGroup);
    mainLayout.addLayout(autoSaveLayout);
    mainLayout.addWidget(tagBehaviorGroup);
   
   
    QVBoxLayout checkboxLayout = new QVBoxLayout();
    checkboxLayout.addWidget(mimicEvernote);
    checkboxLayout.addLayout(startupNotebookLayout);
    checkboxLayout.addWidget(showTrayIcon);
    checkboxLayout.addWidget(minimizeOnClose);
    checkboxLayout.addWidget(startMinimized);
    checkboxLayout.addWidget(showSplashScreen);
    checkboxLayout.addWidget(verifyDelete);
    checkboxLayout.addWidget(pdfPreview);
    checkboxLayout.addWidget(newNoteWithTags);
    checkboxLayout.addWidget(anyTagSelection);
    checkboxLayout.addWidget(includeTagChildren);
    checkboxLayout.addWidget(displayRightToLeft);
    checkboxLayout.addWidget(checkForUpdates);
    checkboxLayout.addStretch(1);

   
    QWidget checkBoxGroup = new QWidget();
    checkBoxGroup.setLayout(checkboxLayout);

    QScrollArea scrollArea = new QScrollArea();
    scrollArea.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAsNeeded);
    scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAsNeeded);
    scrollArea.setWidgetResizable(true);
    scrollArea.setWidget(checkBoxGroup);

    mainLayout.addWidget(scrollArea);
    setLayout(mainLayout);
   
    showTrayIcon.clicked.connect(this, "showTrayIconClicked(Boolean)");
    showTrayIconClicked(showTrayIcon.isChecked());

  }
 
  private void showTrayIconClicked(Boolean checked) {
//    if (!checked) {
//      minimizeOnClose.setEnabled(false);
//      minimizeOnClose.setChecked(false);
//    } else
//      if (QSystemTrayIcon.isSystemTrayAvailable())
//        minimizeOnClose.setEnabled(true);
//      else
//        minimizeOnClose.setEnabled(false);
  }

 
  //*****************************************
  //* date format get/set methods
  //*****************************************
  public void setDateFormat(String id) {
    for (int i=0; i<dformats.size(); i++) {
      String d = dformats.get(i);
      if (d.substring(0,id.length()).equals(id))
        dateFormat.setCurrentIndex(i);
    }
  }
  public String getDateFormat() {
    int i = dateFormat.currentIndex();
    return dateFormat.itemText(i)
  }
 

 
  //*****************************************
  //* time format get/set methods
  //*****************************************
  public void setTimeFormat(String id) {
    for (int i=0; i<tformats.size(); i++) {
      String d = tformats.get(i);
      int dash = d.indexOf("-");
      d = d.substring(0,dash-1);
      if (d.equals(id)) {
        timeFormat.setCurrentIndex(i);
        return;
      }
    }
  }
  public String getTimeFormat() {
    int i = timeFormat.currentIndex();
    return timeFormat.itemText(i)
  }

 
  //*****************************************
  //* gui style format get/set methods
  //*****************************************
  public void setStyle(String id) {
    for (int i=0; i<styleFormat.count(); i++) {
      String d = styleFormat.itemText(i);
      if (d.equals(id))
        styleFormat.setCurrentIndex(i);
    }
  }
  public String getStyle() {
    int i = styleFormat.currentIndex();
    return styleFormat.itemText(i)
  }
 
  //*****************************************
  //* palette style get/set methods
  //*****************************************
  public void setStandardPalette(boolean value) {
    standardPalette.setChecked(value);
  }
  public boolean getStandardPalette() {
    return standardPalette.isChecked()
  }
 
  //*******************************************
  //* Show/Hide tray icon get/set
  //*******************************************
  public void setShowTrayIcon(boolean val) {
    showTrayIcon.setChecked(val)
    showTrayIconClicked(showTrayIcon.isChecked());
  }
  public boolean getShowTrayIcon() {
    return showTrayIcon.isChecked();
  }
 
 
  //*******************************************
  //* minimize on close get/set
  //*******************************************
  public void setMinimizeOnClose(boolean val) {
    minimizeOnClose.setChecked(val)
  }
  public boolean getMinimizeOnClose() {
    return minimizeOnClose.isChecked();
  }
 
 
  //*****************************************
  //* Show the splash screen on startup
  //*****************************************
  public void setShowSplashScreen(boolean val) {
    showSplashScreen.setChecked(val);
  }
  public boolean getShowSplashScreen() {
    return showSplashScreen.isChecked();
  }
 
  //*******************************************
  //* verify deletes get/set
  //*******************************************
  public void setVerifyDelete(boolean val) {
    verifyDelete.setChecked(val)
  }
  public boolean getVerifyDelete() {
    return verifyDelete.isChecked();
  }
 
 
  //*******************************************
  //* Show/Hide tray icon get/set
  //*******************************************
  public void setPdfPreview(boolean val) {
    pdfPreview.setChecked(val)
  }
  public boolean getPdfPreview() {
    return pdfPreview.isChecked();
  }
 
  //*******************************************
  //* check for updates get/set
  //*******************************************
  public void setCheckForUpdates(boolean val) {
    checkForUpdates.setChecked(val)
  }
  public boolean getCheckForUpdates() {
    return checkForUpdates.isChecked();
  }

 
  //********************************************
  //* Listeners for palette & style changes
  //********************************************
  public void styleSelected(String style) {
    QApplication.setStyle(style);
    QApplication.setPalette(QApplication.style().standardPalette());
 
  public void standardPaletteChanged() {
    if (standardPalette.isChecked())
      QApplication.setPalette(QApplication.style().standardPalette());
    else
      QApplication.setPalette(Global.originalPalette);
     
  }

 
  //*****************************************
  //* automatic save timer
  //*****************************************
  public void setAutoSaveInterval(int len) {
    autoSaveInterval.setValue(len);
  }
  public int getAutoSaveInterval() {
    return autoSaveInterval.value()
  }

 
  //*****************************************
  //* Get/Set tag behavior combo box
  //*****************************************
  public void setTagBehavior(String value) {
    for (int i=0; i<tagBehavior.count(); i++) {
      String d = tagBehavior.itemData(i).toString();
      if (value.equalsIgnoreCase(d)) {
        tagBehavior.setCurrentIndex(i);
        return;
      }
    }
  }
  public String getTagBehavior() {
    int i = tagBehavior.currentIndex();
    return tagBehavior.itemData(i).toString();
  }

  //*****************************************
  //* Mimic Evernote Selection
  //*****************************************
  public boolean getMimicEvernote() {
    return mimicEvernote.isChecked();
  }
  public void setMimicEvernote(boolean val) {
    mimicEvernote.setChecked(val);
  }

 
  //*****************************************
  //* Mimic Evernote Selection
  //*****************************************
  public boolean getStartMinimized() {
    return startMinimized.isChecked();
  }
  public void setStartMinimized(boolean val) {
    startMinimized.setChecked(val);
  }


  //*****************************************
  //* Create Note With Selected Tags
  //*****************************************
  public boolean getNewNoteWithTags() {
    return newNoteWithTags.isChecked();
  }
  public void setNewNoteWithTags(boolean val) {
    newNoteWithTags.setChecked(val);
  }
 
  //*****************************************
  //* Set tag selection behavior
  //*****************************************
  public boolean getAnyTagSelection() {
    return anyTagSelection.isChecked();
  }
  public void setAnyTagSelection(boolean val) {
    anyTagSelection.setChecked(val);
  }


  //*****************************************
  //* Include a tag's child when selecting a parent
  //*****************************************
  public boolean getIncludeTagChildren() {
    return includeTagChildren.isChecked();
  }
  public void setIncludeTagChildren(boolean val) {
    includeTagChildren.setChecked(val);
  }
  //*****************************************
  //* Include a tag's child when selecting a parent
  //*****************************************
  public boolean getDisplayRightToLeft() {
    return displayRightToLeft.isChecked();
  }
  public void setDisplayRightToLeft(boolean val) {
    displayRightToLeft.setChecked(val);
  }

 
  //**************************************************
  //* Get/Set startup notebook
  //**************************************************
  public void setStartupNotebook(String value) {
    for (int i=0; i<startupNotebook.count(); i++) {
      String d = startupNotebook.itemData(i).toString();
      if (d.equals(value))
        startupNotebook.setCurrentIndex(i);
    }
  }
  public String getStartupNotebook() {
    int index = startupNotebook.currentIndex();
    return startupNotebook.itemData(index).toString()
  }

}
TOP

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

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.