Package cx.fbn.nevernote.dialog

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

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

import com.trolltech.qt.gui.QCheckBox;
import com.trolltech.qt.gui.QComboBox;
import com.trolltech.qt.gui.QFontDatabase;
import com.trolltech.qt.gui.QGridLayout;
import com.trolltech.qt.gui.QGroupBox;
import com.trolltech.qt.gui.QLabel;
import com.trolltech.qt.gui.QVBoxLayout;
import com.trolltech.qt.gui.QWidget;

import cx.fbn.nevernote.Global;

public class ConfigFontPage extends QWidget {
  private final QCheckBox overrideFonts;
  private final QComboBox fontList;
  private final QComboBox fontSizeList;
  private String font;
  private String fontSize;
   
  public ConfigFontPage(QWidget parent) {
   
    font = Global.getDefaultFont();
    fontSize = Global.getDefaultFontSize();
   
    // Group Box
    QGroupBox fontGroup = new QGroupBox(tr("New Note Defaults"));
    QGridLayout fontLayout = new QGridLayout();
    overrideFonts = new QCheckBox(tr("Override Defaults"));
    overrideFonts.setCheckable(true);
    overrideFonts.setChecked(Global.overrideDefaultFont());
    overrideFonts.clicked.connect(this, "toggleFontOverride(Boolean)");
    fontLayout.addWidget(overrideFonts,1,2);
   
   
    // Fonts
    fontList = new QComboBox();       
    fontList.activated.connect(this, "fontSelected(String)");
    fontLayout.addWidget(new QLabel(tr("Font")),2,1);
    fontLayout.addWidget(fontList,2,2);
   
    // Font Sizes
    fontSizeList = new QComboBox();       
    fontLayout.addWidget(fontSizeList,3,2);
    fontSizeList.activated.connect(this, "fontSizeSelected(String)");
    fontLayout.addWidget(new QLabel(tr("Size")),3,1);
    fontGroup.setLayout(fontLayout);
    fontLayout.setColumnStretch(2, 100);
    toggleFontOverride(Global.overrideDefaultFont());
    loadFonts();
    loadSettings();
   
   
    QVBoxLayout mainLayout = new QVBoxLayout();
    mainLayout.addWidget(fontGroup);
    mainLayout.addStretch(1);
    setLayout(mainLayout);
  }
 
  private void toggleFontOverride(Boolean value) {
    fontList.setEnabled(value);
    fontSizeList.setEnabled(value);
  }
 
  private void loadFonts() {
    QFontDatabase fonts = new QFontDatabase();
    List<String> fontFamilies = fonts.families();
    for (int i = 0; i < fontFamilies.size(); i++) {
      if (font.equals(""))
        font = fontFamilies.get(i);
      fontList.addItem(fontFamilies.get(i));
      if (i == 0) {
        loadFontSize(fontFamilies.get(i));
      }
    }

  }
 
  // Load the font combo box based upon the font selected
  private void loadFontSize(String name) { 
    QFontDatabase db = new QFontDatabase();
    fontSizeList.clear();
    List<Integer> points = db.pointSizes(name);
    for (int i=0; i<points.size(); i++) {
      if (fontSize.equals(""))
        fontSize = points.get(i).toString();
      fontSizeList.addItem(points.get(i).toString());
    }

  }
 
  @SuppressWarnings("unused")
  private void fontSelected(String font) {
    this.font = font;
    loadFontSize(font);
  }
 
  @SuppressWarnings("unused")
  private void fontSizeSelected(String size) {
    this.fontSize = size;
  }
 
  private void loadSettings() {
    if (!Global.getDefaultFont().equals("")) {
      int index = fontList.findText(Global.getDefaultFont());
      fontList.setCurrentIndex(index);
    }
    if (!Global.getDefaultFontSize().equals("")) {
      int index = fontSizeList.findText(Global.getDefaultFontSize());
      fontSizeList.setCurrentIndex(index);
    }
  }
 
  public String getFont() {
    return font;
  }
  public String getFontSize() {
    return fontSize;
  }
  public boolean overrideFont() {
    return overrideFonts.isChecked();
  }
 
}
TOP

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

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.