Source Code (Use browser search to find items of interest.)
Class Index
kcron'KTApp (./kdeadmin/kcron/ktapp.h:37)
class KTApp : public KTMainWindow
{
Q_OBJECT
friend class KTView;
public:
// Menu constants
static const int menuFileSave;
static const int menuFileQuit;
static const int menuEditCut;
static const int menuEditCopy;
static const int menuEditPaste;
static const int menuEditNew;
static const int menuEditModify;
static const int menuEditDelete;
static const int menuEditEnabled;
static const int menuEditRunNow;
static const int menuOptionsShowToolbar;
static const int menuOptionsShowStatusbar;
static const int menuHelpContents;
static const int statusMessage;
/**
* Initialize the application.
*/
KTApp();
/**
* Quit the application..
*/
~KTApp();
/**
* Enable menu item/toolbar item. Id is one of the static constants
* identified above.
*/
void enableCommand(int id_, bool enable = true);
/**
* Enable enable.
*/
void enableEnable(bool display = true, bool enable = true);
/**
* Returns a reference to the document.
*/
const CTHost& getCTHost() const;
protected:
/**
* Resize application window contents.
. */
virtual void resizeEvent (QResizeEvent*);
/** Called on window close event. Asks the document if it is dirty
* and if so, prompts the user for saving before exiting..
*/
virtual bool queryClose();
/** Called when the last window of the application is going to be
* closed. Saves options.
*/
virtual bool queryExit();
public slots:
/**
* Switch argument for slot selection by menu or toolbar ID.
*/
void commandCallback(int id_);
/**
* Switch argument for satus ar help entries on slot selection. Add your
* ID's help here for toolbars and menubar entries.
*/
void statusCallback(int id_);
/**
* Save document.
*/
void slotFileSave();
/**
* Close all open windows then quits the application. If queryClose()
* returns false because the user canceled the saveModified() dialog, the
* closing breaks.
*/
void slotFileQuit();
/**
* Pop up an edit menu.
*/
void slotEdit(const QPoint& qp);
/**
* Put the marked objects on the clipboard and remove it from the
* document.
*/
void slotEditCut();
/**
* Put the marked objects on the clipboard.
*/
void slotEditCopy();
/**
* Paste the object on clipboard into the document
*/
void slotEditPaste();
/**
* New.
*/
void slotEditNew();
/**
* Modify.
*/
void slotEditModify();
/**
* Delete.
*/
void slotEditDelete();
/**
* Toggle enabled.
*/
void slotEditEnable();
/**
* Run program now.
*/
void slotEditRunNow();
/**
* Toggle the toolbar being visible.
*/
void slotViewToolBar();
/**
* Toggles the status bar being visible.
*/
void slotViewStatusBar();
/**
* Changes the status bar contents for the standard label permanently;
* used to indicate current actions.
*/
void slotStatusMsg(const char *text);
/**
* Changes the status message of the whole status bar for two seconds,
* then restores the last status. This is used to display status bar
* messages that give information about actions for toolbar icons and
* menu entries.
*/
void slotStatusHelpMsg(const char *text);
private:
/**
* Disabled copy constructor.
*/
KTApp(const KTApp& source);
/**
* Disabled assignment operator.
*/
void operator = (const KTApp& source);
/**
* Get application caption.
*/
QString caption();
/**
* Initialize menus.
*/
void initMenuBar();
/**
* Initialize toolbar.
*/
void initToolBar();
/**
* Initialize status bar.
*/
void initStatusBar();
/**
* Initialize keyboard accelerators.
*/
void initKeyAccel();
/**
* Read general options again and initialize all variables like the
* geometry.
*/
void readOptions();
/**
* Save general options like all bar positions and status as well as the
* geometry to the configuration file.
*/
void saveOptions();
/**
* File menu.
*/
QPopupMenu* file_menu;
/**
* Edit menu.
*/
QPopupMenu* edit_menu;
/**
* View menu.
*/
QPopupMenu* view_menu;
/**
* Help menu.
*/
QPopupMenu* help_menu;
/**
* Configuration object of the application.
*/
KConfig* config;
/**
* Key accelerator.
*/
KAccel* key_accel;
/**
* Main GUI view/working area.
*/
KTView* view;
/**
* Document object, here crotab enries.
*/
CTHost* cthost;
/**
* Menu bar
*/
KMenuBar* menuBar;
};
kcron'KTApp::KTApp() (./kdeadmin/kcron/ktapp.cpp:42)
KTApp::KTApp()
{
#ifdef KDE1
config=KApplication::getKApplication()->getConfig();
#else
config=kapp->config();
#endif
setIcon(KTIcon::application(true));
setCaption(i18n("Task Scheduler"));
// Call inits to invoke all other construction parts.
initMenuBar();
initToolBar();
initStatusBar();
initKeyAccel();
// Initialize document.
cthost = new CTHost();
// Initialize view.
view = new KTView(this);
setView(view);
// Read options.
readOptions();
}
kcron'KTApp::~KTApp() (./kdeadmin/kcron/ktapp.cpp:71)
KTApp::~KTApp()
{
delete view;
delete cthost;
}
kcron'KTApp::enableCommand() (./kdeadmin/kcron/ktapp.cpp:77)
void KTApp::enableCommand(int id_, bool enable)
{
// enable menu and toolbar functions by their ID's
menuBar->setItemEnabled(id_, enable);
toolBar()->setItemEnabled(id_, enable);
}
kcron'KTApp::enableEnable() (./kdeadmin/kcron/ktapp.cpp:84)
void KTApp::enableEnable(bool display, bool enable)
{
edit_menu->setItemChecked(menuEditEnabled, display ? enable : false);
enableCommand(menuEditEnabled, display);
}
kcron'KTApp::getCTHost() (./kdeadmin/kcron/ktapp.cpp:90)
const CTHost& KTApp::getCTHost() const
{
return *cthost;
}
kcron'KTApp::caption() (./kdeadmin/kcron/ktapp.cpp:96)
QString KTApp::caption()
{
#ifdef KDE1
QString cap(kapp->appName());
#else
QString cap(kapp->caption());
#endif
return cap;
}
kcron'KTApp::initMenuBar() (./kdeadmin/kcron/ktapp.cpp:106)
void KTApp::initMenuBar()
{
file_menu = new QPopupMenu();
file_menu->insertItem(KTIcon::save() ,i18n("&Save"), menuFileSave);
file_menu->insertSeparator();
file_menu->insertItem(i18n("&Quit"), menuFileQuit );
edit_menu = new QPopupMenu();
edit_menu->setCheckable(true);
edit_menu->insertItem(KTIcon::cut(), i18n("Cu&t"), menuEditCut);
edit_menu->insertItem(KTIcon::copy(), i18n("&Copy"), menuEditCopy);
edit_menu->insertItem(KTIcon::paste(), i18n("&Paste"), menuEditPaste);
edit_menu->insertSeparator();
edit_menu->insertItem(i18n("&New..."), menuEditNew);
edit_menu->insertItem(i18n("M&odify..."), menuEditModify);
edit_menu->insertItem(i18n("&Delete"), menuEditDelete);
edit_menu->insertSeparator();
edit_menu->insertItem(i18n("&Enabled"), menuEditEnabled);
edit_menu->insertSeparator();
edit_menu->insertItem(KTIcon::task(true), i18n("&Run Now"), menuEditRunNow);
view_menu = new QPopupMenu();
view_menu->setCheckable(true);
view_menu->insertItem(i18n("Show &Toolbar"), menuOptionsShowToolbar);
view_menu->insertItem(i18n("Show &Statusbar"), menuOptionsShowStatusbar);
help_menu = new QPopupMenu();
QString aboutstring = caption() + " " + VERSION + "\n\n" +
"(c) 1999 Gary Meyer <gary@meyer.net>";
#ifdef KDE1
help_menu = KApplication::getKApplication()->getHelpMenu(true, aboutstring);
#else
help_menu = helpMenu(aboutstring);
#endif
menuBar = new KMenuBar(this);
menuBar->insertItem(i18n("&File"), file_menu);
menuBar->insertItem(i18n("&Edit"), edit_menu);
menuBar->insertItem(i18n("&Options"), view_menu);
menuBar->insertSeparator();
menuBar->insertItem(i18n("&Help"), help_menu);
setMenu(menuBar);
connect(file_menu,SIGNAL(activated(int)),SLOT(commandCallback(int)));
connect(file_menu,SIGNAL(highlighted(int)),SLOT(statusCallback(int)));
connect(edit_menu,SIGNAL(activated(int)),SLOT(commandCallback(int)));
connect(edit_menu,SIGNAL(highlighted(int)),SLOT(statusCallback(int)));
connect(view_menu,SIGNAL(activated(int)),SLOT(commandCallback(int)));
connect(view_menu,SIGNAL(highlighted(int)),SLOT(statusCallback(int)));
}
kcron'KTApp::initToolBar() (./kdeadmin/kcron/ktapp.cpp:162)
void KTApp::initToolBar()
{
toolBar()->insertButton(KTIcon::save(), menuFileSave, true, i18n("Save"));
toolBar()->insertSeparator();
toolBar()->insertButton(KTIcon::cut(), menuEditCut, true, i18n("Cut"));
toolBar()->insertButton(KTIcon::copy(), menuEditCopy, true, i18n("Copy"));
toolBar()->insertButton(KTIcon::paste(), menuEditPaste, true, i18n("Paste"));
toolBar()->insertSeparator();
toolBar()->insertButton(KTIcon::help(), menuHelpContents, SIGNAL(clicked()),
kapp, SLOT(appHelpActivated()), true, i18n("Help"));
connect(toolBar(), SIGNAL(clicked(int)), SLOT(commandCallback(int)));
connect(toolBar(), SIGNAL(pressed(int)), SLOT(statusCallback(int)));
}
kcron'KTApp::initStatusBar() (./kdeadmin/kcron/ktapp.cpp:177)
void KTApp::initStatusBar()
{
statusBar()->insertItem(i18n("Ready."), statusMessage);
}
kcron'KTApp::initKeyAccel() (./kdeadmin/kcron/ktapp.cpp:182)
void KTApp::initKeyAccel()
{
key_accel = new KAccel(this);
// file menu accelerators
key_accel->connectItem(KStdAccel::Save, this, SLOT(slotFileSave()));
key_accel->connectItem(KStdAccel::Quit, this, SLOT(slotFileQuit()));
// edit menu accelerators
key_accel->connectItem(KStdAccel::Cut, this, SLOT(slotEditCut()));
key_accel->connectItem(KStdAccel::Copy, this, SLOT(slotEditCopy()));
key_accel->connectItem(KStdAccel::Paste, this, SLOT(slotEditPaste()));
key_accel->connectItem(KStdAccel::New, this, SLOT(slotEditNew()));
key_accel->connectItem(KStdAccel::Insert, this, SLOT(slotEditNew()));
key_accel->connectItem(KStdAccel::Open, this, SLOT(slotEditModify()));
// help menu accelerators
key_accel->connectItem(KStdAccel::Help, kapp, SLOT(appHelpActivated()));
key_accel->changeMenuAccel(file_menu, menuFileSave, KStdAccel::Save);
key_accel->changeMenuAccel(file_menu, menuFileQuit, KStdAccel::Quit);
key_accel->changeMenuAccel(edit_menu, menuEditCut, KStdAccel::Cut);
key_accel->changeMenuAccel(edit_menu, menuEditCopy, KStdAccel::Copy);
key_accel->changeMenuAccel(edit_menu, menuEditPaste, KStdAccel::Paste);
key_accel->changeMenuAccel(edit_menu, menuEditNew, KStdAccel::Insert);
key_accel->changeMenuAccel(edit_menu, menuEditNew, KStdAccel::New);
key_accel->changeMenuAccel(edit_menu, menuEditModify, KStdAccel::Open);
key_accel->readSettings();
}
kcron'KTApp::saveOptions() (./kdeadmin/kcron/ktapp.cpp:215)
void KTApp::saveOptions()
{
config->setGroup(QString("General Options"));
config->writeEntry(QString("Geometry"), size());
config->writeEntry(QString("Show Toolbar"), toolBar()->isVisible());
config->writeEntry(QString("Show Statusbar"), statusBar()->isVisible());
config->writeEntry(QString("ToolBarPos"), (int)toolBar()->barPos());
}
kcron'KTApp::readOptions() (./kdeadmin/kcron/ktapp.cpp:225)
void KTApp::readOptions()
{
config->setGroup(QString("General Options"));
// bar status settings
bool bViewToolbar = config->readBoolEntry(QString("Show Toolbar"), true);
view_menu->setItemChecked(menuOptionsShowToolbar, bViewToolbar);
if (!bViewToolbar)
enableToolBar(KToolBar::Hide);
bool bViewStatusbar = config->readBoolEntry(QString("Show Statusbar"), true);
view_menu->setItemChecked(menuOptionsShowStatusbar, bViewStatusbar);
if (!bViewStatusbar)
enableStatusBar(KStatusBar::Hide);
// bar position settings
KToolBar::BarPosition tool_bar_pos;
tool_bar_pos=(KToolBar::BarPosition)
config->readNumEntry(QString("ToolBarPos"),
KToolBar::Top);
toolBar()->setBarPos(tool_bar_pos);
QSize size=config->readSizeEntry(QString("Geometry"));
if (!size.isEmpty())
resize(size);
}
kcron'KTApp::queryClose() (./kdeadmin/kcron/ktapp.cpp:254)
bool KTApp::queryClose()
{
if(cthost->dirty())
{
KTApp* win = (KTApp*)parent();
int retVal = QMessageBox::information(win, caption(),
i18n("Scheduled tasks have been modified.\nDo you want to save changes?"),
QMessageBox::Yes | QMessageBox::Default,
QMessageBox::No,
QMessageBox::Cancel | QMessageBox::Escape);
switch (retVal)
{
case QMessageBox::Yes:
cthost->apply();
return true;
break;
case QMessageBox::No:
return true;
break;
case QMessageBox::Cancel:
return false;
break;
default:
return false;
break;
}
}
else
{
return true;
}
}
kcron'KTApp::queryExit() (./kdeadmin/kcron/ktapp.cpp:289)
bool KTApp::queryExit()
{
saveOptions();
return true;
}
kcron'KTApp::slotFileSave() (./kdeadmin/kcron/ktapp.cpp:295)
void KTApp::slotFileSave()
{
slotStatusMsg(i18n("Saving..."));
cthost->apply();
slotStatusMsg(i18n("Ready."));
}
kcron'KTApp::slotFileQuit() (./kdeadmin/kcron/ktapp.cpp:302)
void KTApp::slotFileQuit()
{
saveOptions();
close();
}
kcron'KTApp::slotEdit() (./kdeadmin/kcron/ktapp.cpp:308)
void KTApp::slotEdit(const QPoint& qp)
{
edit_menu->exec(qp, 0);
}
kcron'KTApp::slotEditCut() (./kdeadmin/kcron/ktapp.cpp:313)
void KTApp::slotEditCut()
{
slotStatusMsg(i18n("Cutting to clipboard..."));
view->copy();
view->remove();
slotStatusMsg(i18n("Ready."));
}
kcron'KTApp::slotEditCopy() (./kdeadmin/kcron/ktapp.cpp:321)
void KTApp::slotEditCopy()
{
slotStatusMsg(i18n("Copying to clipboard..."));
view->copy();
slotStatusMsg(i18n("Ready."));
}
kcron'KTApp::slotEditPaste() (./kdeadmin/kcron/ktapp.cpp:328)
void KTApp::slotEditPaste()
{
slotStatusMsg(i18n("Pasting from clipboard..."));
view->paste();
slotStatusMsg(i18n("Ready."));
}
kcron'KTApp::slotEditNew() (./kdeadmin/kcron/ktapp.cpp:335)
void KTApp::slotEditNew()
{
slotStatusMsg(i18n("Adding new entry..."));
view->create();
slotStatusMsg(i18n("Ready."));
}
kcron'KTApp::slotEditModify() (./kdeadmin/kcron/ktapp.cpp:342)
void KTApp::slotEditModify()
{
slotStatusMsg(i18n("Modifying entry..."));
view->edit();
slotStatusMsg(i18n("Ready."));
}
kcron'KTApp::slotEditDelete() (./kdeadmin/kcron/ktapp.cpp:349)
void KTApp::slotEditDelete()
{
slotStatusMsg(i18n("Deleting entry..."));
view->remove();
slotStatusMsg(i18n("Ready."));
}
kcron'KTApp::slotEditEnable() (./kdeadmin/kcron/ktapp.cpp:356)
void KTApp::slotEditEnable()
{
if (edit_menu->isItemChecked(menuEditEnabled))
{
slotStatusMsg(i18n("Disabling entry..."));
view->enable(false);
edit_menu->setItemChecked(menuEditEnabled, false);
}
else
{
slotStatusMsg(i18n("Enabling entry..."));
view->enable(true);
edit_menu->setItemChecked(menuEditEnabled, true);
}
slotStatusMsg(i18n("Ready."));
}
kcron'KTApp::slotEditRunNow() (./kdeadmin/kcron/ktapp.cpp:373)
void KTApp::slotEditRunNow()
{
slotStatusMsg(i18n("Running command..."));
view->run();
slotStatusMsg(i18n("Ready."));
}
kcron'KTApp::slotViewToolBar() (./kdeadmin/kcron/ktapp.cpp:380)
void KTApp::slotViewToolBar()
{
if (view_menu->isItemChecked(menuOptionsShowToolbar))
view_menu->setItemChecked(menuOptionsShowToolbar, false);
else
view_menu->setItemChecked(menuOptionsShowToolbar, true);
enableToolBar();
slotStatusMsg(i18n("Ready."));
}
kcron'KTApp::slotViewStatusBar() (./kdeadmin/kcron/ktapp.cpp:390)
void KTApp::slotViewStatusBar()
{
if (view_menu->isItemChecked(menuOptionsShowStatusbar))
view_menu->setItemChecked(menuOptionsShowStatusbar, false);
else
view_menu->setItemChecked(menuOptionsShowStatusbar, true);
enableStatusBar();
slotStatusMsg(i18n("Ready."));
}
kcron'KTApp::slotStatusMsg() (./kdeadmin/kcron/ktapp.cpp:400)
void KTApp::slotStatusMsg(const char *text)
{
statusBar()->clear();
statusBar()->changeItem(text, statusMessage);
}
kcron'KTApp::slotStatusHelpMsg() (./kdeadmin/kcron/ktapp.cpp:406)
void KTApp::slotStatusHelpMsg(const char *text)
{
statusBar()->message(text, 2000);
}
kcron'KTApp::commandCallback() (./kdeadmin/kcron/ktapp.cpp:411)
void KTApp::commandCallback(int id_){
switch (id_){
case menuFileSave:
slotFileSave();
break;
case menuFileQuit:
slotFileQuit();
break;
case menuEditCut:
slotEditCut();
break;
case menuEditCopy:
slotEditCopy();
break;
case menuEditPaste:
slotEditPaste();
break;
case menuEditNew:
slotEditNew();
break;
case menuEditModify:
slotEditModify();
break;
case menuEditDelete:
slotEditDelete();
break;
case menuEditEnabled:
slotEditEnable();
break;
case menuEditRunNow:
slotEditRunNow();
break;
case menuOptionsShowToolbar:
slotViewToolBar();
break;
case menuOptionsShowStatusbar:
slotViewStatusBar();
break;
default:
break;
}
}
kcron'KTApp::statusCallback() (./kdeadmin/kcron/ktapp.cpp:458)
void KTApp::statusCallback(int id_){
switch (id_){
case menuFileSave:
slotStatusHelpMsg(i18n("Save tasks and variables."));
break;
case menuFileQuit:
slotStatusHelpMsg(i18n("Exit " + caption() + "."));
break;
case menuEditCut:
slotStatusHelpMsg(i18n("Cut the selected task or variable and put on the clipboard."));
break;
case menuEditCopy:
slotStatusHelpMsg(i18n("Copy the selected task or variable to the clipboard."));
break;
case menuEditPaste:
slotStatusHelpMsg(i18n("Paste task or variable from the clipboard."));
break;
case menuEditNew:
slotStatusHelpMsg(i18n("Create a new task or variable."));
break;
case menuEditModify:
slotStatusHelpMsg(i18n("Edit the selected task or variable."));
break;
case menuEditDelete:
slotStatusHelpMsg(i18n("Delete the selected task or variable."));
break;
case menuEditEnabled:
slotStatusHelpMsg(i18n("Enable/disable the selected task or variable."));
break;
case menuEditRunNow:
slotStatusHelpMsg(i18n("Run the selected task now."));
break;
case menuOptionsShowToolbar:
slotStatusHelpMsg(i18n("Enables/disable the tool bar."));
break;
case menuOptionsShowStatusbar:
slotStatusHelpMsg(i18n("Enable/disable the status bar."));
break;
default:
break;
}
}
kcron'KTApp::resizeEvent() (./kdeadmin/kcron/ktapp.cpp:506)
void KTApp::resizeEvent (QResizeEvent* event)
{
view->setGeometry(0, menuBar->height() +
view_menu->isItemChecked(menuOptionsShowToolbar) * toolBar()->height(),
width(), height() - menuBar->height() -
view_menu->isItemChecked(menuOptionsShowToolbar) * toolBar()->height() -
view_menu->isItemChecked(menuOptionsShowStatusbar) *
statusBar()->height());
repaint();
}