You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bibletime/bibletime/frontend/displaywindow/chtmlwritewindow.cpp

133 lines
4.6 KiB

/*********
*
* This file is part of BibleTime's source code, http://www.bibletime.info/.
*
* Copyright 1999-2006 by the BibleTime developers.
* The BibleTime source code is licensed under the GNU General Public License version 2.0.
*
**********/
#include "chtmlwritewindow.h"
//frontend includes
#include "frontend/keychooser/ckeychooser.h"
#include "frontend/cprofilewindow.h"
#include "util/cresmgr.h"
//TQt includes
//KDE includes
#include <tdeaction.h>
#include <tdelocale.h>
using namespace Profile;
CHTMLWriteWindow::CHTMLWriteWindow(ListCSwordModuleInfo modules, CMDIArea* parent, const char *name)
: CPlainWriteWindow(modules, parent, name) {}
CHTMLWriteWindow::~CHTMLWriteWindow() {}
void CHTMLWriteWindow::initView() {
CWriteDisplay* writeDisplay = CDisplay::createWriteInstance(this, CDisplay::HTMLDisplay);
Q_ASSERT(writeDisplay);
setDisplayWidget( writeDisplay );
setCentralWidget( displayWidget()->view() );
setMainToolBar( new TDEToolBar(this) );
mainToolBar()->setFullSize(true);
addDockWindow(mainToolBar());
setKeyChooser( CKeyChooser::createInstance(modules(), key(), mainToolBar()) );
mainToolBar()->insertWidget(0,keyChooser()->sizeHint().width(),keyChooser());
mainToolBar()->setFullSize(false);
};
void CHTMLWriteWindow::initConnections() {
CWriteWindow::initConnections();
connect(keyChooser(), TQT_SIGNAL(keyChanged(CSwordKey*)),
TQT_TQOBJECT(this), TQT_SLOT(lookup(CSwordKey*)));
connect(displayWidget()->connectionsProxy(), TQT_SIGNAL(textChanged()),
TQT_TQOBJECT(this), TQT_SLOT(textChanged()) );
};
void CHTMLWriteWindow::initToolbars() {
//setup the toolbar
m_actions.syncWindow = new TDEToggleAction(i18n("Sync with active Bible"),
CResMgr::displaywindows::commentaryWindow::syncWindow::icon,
CResMgr::displaywindows::commentaryWindow::syncWindow::accel,
actionCollection(),
CResMgr::displaywindows::commentaryWindow::syncWindow::actionName
);
m_actions.syncWindow->setToolTip(CResMgr::displaywindows::commentaryWindow::syncWindow::tooltip);
m_actions.syncWindow->plug(mainToolBar());
m_actions.saveText = new TDEAction( i18n("Save text"),
CResMgr::displaywindows::writeWindow::saveText::icon,
CResMgr::displaywindows::writeWindow::saveText::accel,
TQT_TQOBJECT(this), TQT_SLOT( saveCurrentText() ),
actionCollection(),
CResMgr::displaywindows::writeWindow::saveText::actionName
);
m_actions.saveText->setToolTip( CResMgr::displaywindows::writeWindow::saveText::tooltip );
m_actions.saveText->plug(mainToolBar());
m_actions.deleteEntry = new TDEAction(i18n("Delete current entry"),
CResMgr::displaywindows::writeWindow::deleteEntry::icon,
CResMgr::displaywindows::writeWindow::deleteEntry::accel,
TQT_TQOBJECT(this), TQT_SLOT(deleteEntry()),
actionCollection(),
CResMgr::displaywindows::writeWindow::deleteEntry::actionName
);
m_actions.deleteEntry->setToolTip( CResMgr::displaywindows::writeWindow::deleteEntry::tooltip );
m_actions.deleteEntry->plug(mainToolBar());
m_actions.restoreText = new TDEAction(i18n("Restore original text"),
CResMgr::displaywindows::writeWindow::restoreText::icon,
CResMgr::displaywindows::writeWindow::restoreText::accel,
TQT_TQOBJECT(this), TQT_SLOT(restoreText()), actionCollection(),
CResMgr::displaywindows::writeWindow::restoreText::actionName
);
m_actions.restoreText->setToolTip( CResMgr::displaywindows::writeWindow::restoreText::tooltip );
m_actions.restoreText->plug(mainToolBar());
TDEToolBar* bar = new TDEToolBar(this);
bar->setFullSize(true);
addDockWindow(bar);
displayWidget()->setupToolbar( bar, actionCollection() );
}
void CHTMLWriteWindow::storeProfileSettings( CProfileWindow* profileWindow ) {
CWriteWindow::storeProfileSettings(profileWindow);
profileWindow->setWindowSettings( m_actions.syncWindow->isChecked() );
};
void CHTMLWriteWindow::applyProfileSettings( CProfileWindow* profileWindow ) {
CWriteWindow::applyProfileSettings(profileWindow);
if (profileWindow->windowSettings()) {
m_actions.syncWindow->setChecked(true);
}
};
/** Is called when the current text was changed. */
void CHTMLWriteWindow::textChanged() {
m_actions.saveText->setEnabled( displayWidget()->isModified() );
m_actions.restoreText->setEnabled( displayWidget()->isModified() );
}
/** Loads the original text from the module. */
void CHTMLWriteWindow::restoreText() {
lookup(key());
displayWidget()->setModified(false);
textChanged();
}
const bool CHTMLWriteWindow::syncAllowed() const {
return m_actions.syncWindow->isChecked();
}