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 + -
显示快捷键?