ksiemens.cpp

来自「KDE下的西门子手机管理程序」· C++ 代码 · 共 227 行

CPP
227
字号
/***************************************************************************                          ksiemens.cpp  -  description                             -------------------    begin                : Wed Jan 17 10:34:49 CET 2001    copyright            : (C) 2001 by Matthias Welwarsky    email                : matze@stud.fbi.fh-darmstadt.de ***************************************************************************//*************************************************************************** *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * ***************************************************************************/// include files for QT#include <qdir.h>#include <qprinter.h>#include <qpainter.h>#include <qlineedit.h>// include files for KDE#include <kiconloader.h>#include <kmessagebox.h>#include <kfiledialog.h>#include <kmenubar.h>#include <klocale.h>#include <kconfig.h>#include <kstdaction.h>// application specific includes#include "ksiemens.h"#include "ksiemensview.h"#include "settings.h"#define ID_STATUS_MSG 1KSiemensApp* KSiemensApp::self;KSiemensApp::KSiemensApp(QWidget* , const char* name):KParts::MainWindow(0, name){  config=kapp->config();  ///////////////////////////////////////////////////////////////////  // call inits to invoke all other construction parts  initStatusBar();  initActions();  initView();	  readOptions();  self = this;}KSiemensApp::~KSiemensApp(){}void KSiemensApp::initActions(){	fileExitAction = new KAction("Exit", 0, this, SLOT(slotFileExit()), actionCollection(), "file_exit");	prefsAction = new KAction("Preferences...", 0, this, SLOT(slotPrefs()), actionCollection(), "settings_preferences");  	  	viewToolBar = KStdAction::showToolbar(this, SLOT(slotViewToolBar()), actionCollection());  	viewStatusBar = KStdAction::showStatusbar(this, SLOT(slotViewStatusBar()), actionCollection());  	viewToolBar->setStatusText(i18n("Enables/disables the toolbar"));  	viewStatusBar->setStatusText(i18n("Enables/disables the statusbar"));  	// use the absolute path to your ksiemensui.rc file for testing purpose in createGUI();  	createGUI(NULL);}void KSiemensApp::initStatusBar(){  ///////////////////////////////////////////////////////////////////  // STATUSBAR  // TODO: add your own items you need for displaying current application status.  statusBar()->insertItem(i18n("Ready."), ID_STATUS_MSG);}void KSiemensApp::initView(){   ////////////////////////////////////////////////////////////////////  // create the main widget here that is managed by KTMainWindow's view-region and  // connect the widget to your document to display document contents.  view = new KSiemensView(this);  setCentralWidget(view);	}void KSiemensApp::saveOptions(){	  config->setGroup("General Options");  config->writeEntry("Geometry", size());  config->writeEntry("Show Toolbar", viewToolBar->isChecked());  config->writeEntry("Show Statusbar",viewStatusBar->isChecked());  config->writeEntry("ToolBarPos", (int) toolBar("mainToolBar")->barPos());}void KSiemensApp::readOptions(){	  config->setGroup("General Options");  // bar status settings  bool bViewToolbar = config->readBoolEntry("Show Toolbar", true);  viewToolBar->setChecked(bViewToolbar);  slotViewToolBar();  bool bViewStatusbar = config->readBoolEntry("Show Statusbar", true);  viewStatusBar->setChecked(bViewStatusbar);  slotViewStatusBar();  // bar position settings  KToolBar::BarPosition toolBarPos;  toolBarPos=(KToolBar::BarPosition) config->readNumEntry("ToolBarPos", KToolBar::Top);  toolBar("mainToolBar")->setBarPos(toolBarPos);	  QSize size=config->readSizeEntry("Geometry");  if(!size.isEmpty())  {    resize(size);  }}void KSiemensApp::saveProperties(KConfig *_cfg){}void KSiemensApp::readProperties(KConfig* _cfg){}		bool KSiemensApp::queryClose(){}bool KSiemensApp::queryExit(){  saveOptions();  return true;}/////////////////////////////////////////////////////////////////////// SLOT IMPLEMENTATION/////////////////////////////////////////////////////////////////////void KSiemensApp::slotViewToolBar(){  slotStatusMsg(i18n("Toggling toolbar..."));  ///////////////////////////////////////////////////////////////////  // turn Toolbar on or off  if(!viewToolBar->isChecked())  {    toolBar("mainToolBar")->hide();  }  else  {    toolBar("mainToolBar")->show();  }		  slotStatusMsg(i18n("Ready."));}void KSiemensApp::slotViewStatusBar(){  slotStatusMsg(i18n("Toggle the statusbar..."));  ///////////////////////////////////////////////////////////////////  //turn Statusbar on or off  if(!viewStatusBar->isChecked())  {    statusBar()->hide();  }  else  {    statusBar()->show();  }  slotStatusMsg(i18n("Ready."));}void KSiemensApp::slotStatusMsg(const QString &text){  ///////////////////////////////////////////////////////////////////  // change status message permanently  statusBar()->clear();  statusBar()->changeItem(text, ID_STATUS_MSG);}/** closes the application when called */void KSiemensApp::slotFileExit(){	kapp->exit();}/** opens the configuration dialog */void KSiemensApp::slotPrefs() {	Settings* prefs = new Settings(this, "settingsDialog");		config->setGroup("Communication");		QString configData = config->readEntry("Device", "/dev/modem");	prefs->deviceEdit->setText(configData);		configData = config->readEntry("Bitrate", "115200");	prefs->setBitrate(configData);		if (prefs->exec()) {		// store configuration data		config->writeEntry("Device", prefs->deviceEdit->text());		config->writeEntry("Bitrate", prefs->bitrate());	}		delete prefs;	}/** calls KParts::MainWindow::createGUI(), reimplemented because I needed a public version. */void KSiemensApp::createGUI(KParts::Part* part){	KParts::MainWindow::createGUI(part);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?