Package cx.fbn.nevernote.gui

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

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

import java.awt.Desktop;
import java.util.List;

import com.trolltech.qt.core.QUrl;
import com.trolltech.qt.core.Qt.WidgetAttribute;
import com.trolltech.qt.gui.QCloseEvent;
import com.trolltech.qt.gui.QDesktopServices;
import com.trolltech.qt.gui.QDialog;
import com.trolltech.qt.gui.QMdiSubWindow;
import com.trolltech.qt.gui.QPrintDialog;
import com.trolltech.qt.gui.QPrinter;

import cx.fbn.nevernote.Global;
import cx.fbn.nevernote.dialog.FindDialog;
import cx.fbn.nevernote.sql.DatabaseConnection;

public class ExternalBrowse extends QMdiSubWindow {
  private final DatabaseConnection  conn;
  private final BrowserWindow  browser;
  public Signal4<String, String, Boolean, BrowserWindow> contentsChanged;
  public Signal1<String>  windowClosing;
  boolean noteDirty;
  String saveTitle;
  private final FindDialog  find;            // Text search in note dialog
//  ExternalBrowserMenuBar    menu;
  ExternalBrowserMenuBar  menu;
 
  // Constructor
  public ExternalBrowse(DatabaseConnection c) {
    setAttribute(WidgetAttribute.WA_QuitOnClose, false);
    setWindowTitle(tr("NixNote"));
    conn = c;
    contentsChanged = new Signal4<String, String, Boolean, BrowserWindow>();
    windowClosing = new Signal1<String>();
    browser = new BrowserWindow(conn);
    menu = new ExternalBrowserMenuBar(this);
    for (int i=0; i<menu.actions().size(); i++) {
      addAction(menu.actions().get(i));
    }
   
    setWidget(browser);
    noteDirty = false;
    browser.titleLabel.textChanged.connect(this, "titleChanged(String)");
    browser.getBrowser().page().contentsChanged.connect(this, "contentChanged()");
    find = new FindDialog();
    find.getOkButton().clicked.connect(this, "doFindText()");
  }
 
  @SuppressWarnings("unused")
  private void contentChanged() {
    noteDirty = true;
    contentsChanged.emit(getBrowserWindow().getNote().getGuid(), getBrowserWindow().getContent(), false, getBrowserWindow());
  }

 
  @Override
  public void closeEvent(QCloseEvent event) {
    if (noteDirty)
      contentsChanged.emit(getBrowserWindow().getNote().getGuid(), getBrowserWindow().getContent(), true, getBrowserWindow());
    windowClosing.emit(getBrowserWindow().getNote().getGuid());
  }
 
    public BrowserWindow getBrowserWindow() {
      return browser;
    }
   
    @SuppressWarnings("unused")
  private void titleChanged(String value) {
      setWindowTitle(tr("NixNote - ") +value);
    }
   
  @SuppressWarnings("unused")
  private void updateTitle(String guid, String title) {
    if (guid.equals(getBrowserWindow().getNote().getGuid()) &&
        (saveTitle != null && !title.equals(saveTitle) || saveTitle == null) ) {
      saveTitle = title;
      getBrowserWindow().loadingData(true);
      getBrowserWindow().setTitle(title);
      getBrowserWindow().getNote().setTitle(title);
      getBrowserWindow().loadingData(false);
    }
  }
  @SuppressWarnings("unused")
  private void updateNotebook(String guid, String notebook) {
    if (guid.equals(getBrowserWindow().getNote().getGuid())) {
      getBrowserWindow().loadingData(true);
      getBrowserWindow().setNotebook(notebook);
      getBrowserWindow().loadingData(false);
    }
  }
 
  @SuppressWarnings("unused")
  private void updateTags(String guid, List<String> tags) {
    if (guid.equals(getBrowserWindow().getNote().getGuid())) {
      StringBuffer tagLine = new StringBuffer(100);
      for (int i=0; i<tags.size(); i++) {
        if (i>0)
          tagLine.append(Global.tagDelimeter+" ");
        tagLine.append(tags.get(i));
       
      }
      getBrowserWindow().loadingData(true);
      getBrowserWindow().getTagLine().setText(tagLine.toString());
      getBrowserWindow().loadingData(false);
    }
  }

 
    @SuppressWarnings("unused")
  private void findText() {
      find.show();
      find.setFocusOnTextField();
    }
    @SuppressWarnings("unused")
  private void doFindText() {
      browser.getBrowser().page().findText(find.getText(), find.getFlags());
      find.setFocus();
    }

 
    @SuppressWarnings("unused")
  private void printNote() {

      QPrintDialog dialog = new QPrintDialog();
      if (dialog.exec() == QDialog.DialogCode.Accepted.value()) {
        QPrinter printer = dialog.printer();
        browser.getBrowser().print(printer);
      }
    }
   
    // Listener triggered when the email button is pressed
    @SuppressWarnings("unused")
  private void emailNote() {
        if (Desktop.isDesktopSupported()) {
            Desktop desktop = Desktop.getDesktop();
           
            String text2 = browser.getContentsToEmail();
            QUrl url = new QUrl("mailto:");
            url.addQueryItem("subject", browser.getTitle());
            url.addQueryItem("body", text2);
            QDesktopServices.openUrl(url);
        }
    }
}
TOP

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

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.