TDMSlimShutdown::TDMSlimShutdown( TQWidget *_parent ) : inherited( _parent ) , targetList( 0 ) { setCaption(i18n("Shutdown TDE")); bool doUbuntuLogout = TDEConfigGroup(TDEGlobal::config(), "Shutdown").readBoolEntry("doUbuntuLogout", false); TQFrame* lfrm = new TQFrame( this ); TQHBoxLayout* hbuttonbox; if(doUbuntuLogout) { TQVBoxLayout* vbox = new TQVBoxLayout( this ); if (has_twin) lfrm->setFrameStyle( TQFrame::NoFrame ); else lfrm->setFrameStyle( TQFrame::StyledPanel | TQFrame::Raised ); lfrm->setLineWidth( style().pixelMetric( TQStyle::PM_DefaultFrameWidth, lfrm ) ); // we need to set the minimum size for the logout box, since it // gets too small if there all options are not available lfrm->setMinimumSize(300,120); vbox->addWidget( lfrm ); vbox = new TQVBoxLayout( lfrm, 2 * KDialog::marginHint(), 2 * KDialog::spacingHint() ); // first line of buttons hbuttonbox = new TQHBoxLayout( vbox, 8 * KDialog::spacingHint() ); hbuttonbox->setAlignment( Qt::AlignHCenter ); // Reboot FlatButton* btnReboot = new FlatButton( lfrm ); btnReboot->setTextLabel( i18n("&Restart"), false ); btnReboot->setPixmap( DesktopIcon( "reload") ); int i = btnReboot->textLabel().find( TQRegExp("\\&"), 0 ); // i == 1 btnReboot->setAccel( "ALT+" + btnReboot->textLabel().lower()[i+1] ) ; hbuttonbox->addWidget ( btnReboot); connect(btnReboot, TQT_SIGNAL(clicked()), TQT_SLOT(slotReboot())); // Copied completely from the standard restart/shutdown dialog GSet( 1 ); GSendInt( G_ListBootOpts ); if (GRecvInt() == BO_OK) { targetList = GRecvStrArr( 0 ); /*int def =*/ GRecvInt(); int cur = GRecvInt(); TQPopupMenu *targets = new TQPopupMenu( this ); btnReboot->setPopupDelay(300); // visually add dropdown for (int i = 0; targetList[i]; i++) { TQString t( TQString::fromLocal8Bit( targetList[i] ) ); targets->insertItem( i == cur ? i18n("current option in boot loader", "%1 (current)").arg( t ) : t, i ); } btnReboot->setPopup( targets ); connect( targets, TQT_SIGNAL(activated(int)), TQT_SLOT(slotReboot(int)) ); } GSet( 0 ); // Copied completely from the standard restart/shutdown dialog // Shutdown FlatButton* btnHalt = new FlatButton( lfrm ); btnHalt->setTextLabel( i18n("&Turn Off"), false ); btnHalt->setPixmap( DesktopIcon( "system-log-out") ); i = btnHalt->textLabel().find( TQRegExp("\\&"), 0 ); // i == 1 btnHalt->setAccel( "ALT+" + btnHalt->textLabel().lower()[i+1] ) ; hbuttonbox->addWidget ( btnHalt ); connect(btnHalt, TQT_SIGNAL(clicked()), TQT_SLOT(slotHalt())); // cancel buttonbox TQHBoxLayout* hbuttonbox2 = new TQHBoxLayout( vbox, 8 * KDialog::spacingHint() ); hbuttonbox2->setAlignment( Qt::AlignRight ); // Back to tdm KSMPushButton* btnBack = new KSMPushButton( KStdGuiItem::cancel(), lfrm ); hbuttonbox2->addWidget( btnBack ); connect(btnBack, TQT_SIGNAL(clicked()), TQT_SLOT(reject())); } else { TQHBoxLayout *hbox = new TQHBoxLayout( this, KDmh, KDsh ); if (has_twin) lfrm->setFrameStyle( TQFrame::NoFrame ); else lfrm->setFrameStyle( TQFrame::Panel | TQFrame::Sunken ); hbox->addWidget( lfrm, AlignCenter ); // we need to set the minimum size for the logout box, since it // gets too small if there all options are not available TQLabel *icon = new TQLabel( lfrm ); icon->setPixmap( TQPixmap( locate( "data", "tdm/pics/shutdown.jpg" ) ) ); TQVBoxLayout *iconlay = new TQVBoxLayout( lfrm ); iconlay->addWidget( icon ); TQVBoxLayout *buttonlay = new TQVBoxLayout( hbox, KDsh ); buttonlay->addStretch( 1 ); KPushButton *btnHalt = new KPushButton( KGuiItem( i18n("&Turn Off Computer"), "system-log-out" ), this ); buttonlay->addWidget( btnHalt ); connect( btnHalt, TQT_SIGNAL(clicked()), TQT_SLOT(slotHalt()) ); buttonlay->addSpacing( KDialog::spacingHint() ); TDMDelayedPushButton *btnReboot = new TDMDelayedPushButton( KGuiItem( i18n("&Restart Computer"), "reload" ), this ); buttonlay->addWidget( btnReboot ); connect( btnReboot, TQT_SIGNAL(clicked()), TQT_SLOT(slotReboot()) ); GSet( 1 ); GSendInt( G_ListBootOpts ); if (GRecvInt() == BO_OK) { targetList = GRecvStrArr( 0 ); /*int def =*/ GRecvInt(); int cur = GRecvInt(); TQPopupMenu *targets = new TQPopupMenu( this ); for (int i = 0; targetList[i]; i++) { TQString t( TQString::fromLocal8Bit( targetList[i] ) ); targets->insertItem( i == cur ? i18n("current option in boot loader", "%1 (current)").arg( t ) : t, i ); } btnReboot->setPopup( targets ); connect( targets, TQT_SIGNAL(activated(int)), TQT_SLOT(slotReboot(int)) ); } GSet( 0 ); buttonlay->addStretch( 1 ); if (_scheduledSd != SHUT_NEVER) { KPushButton *btnSched = new KPushButton( KGuiItem( i18n("&Schedule...") ), this ); buttonlay->addWidget( btnSched ); connect( btnSched, TQT_SIGNAL(clicked()), TQT_SLOT(slotSched()) ); buttonlay->addStretch( 1 ); } buttonlay->addWidget( new KSeparator( this ) ); buttonlay->addSpacing( 0 ); KPushButton *btnBack = new KPushButton( KStdGuiItem::cancel(), this ); buttonlay->addWidget( btnBack ); connect( btnBack, TQT_SIGNAL(clicked()), TQT_SLOT(reject()) ); buttonlay->addSpacing( KDialog::spacingHint() ); } }
void MainWindow::startFunctions() { headersLst.append("ОУ"); headersLst.append("Адрес"); headersLst.append("Класс"); treeMdl = new TreeModel(headersLst); ui->progressBarTree->hide(); lblSN = new QLabel; lblPOVer = new QLabel(); lblNetNum = new QLabel(); lblNumLiter = new QLabel(); lblStatus = new QLabel(); lblPort = new QLabel(); lblSysAddress = new QLabel(); lblCoverStat = new QLabel(); lblBindStat = new QLabel(); lblIn1 = new QLabel(); lblIn2 = new QLabel(); lblNoize = new QLabel(); lblInterView = new QLabel(); statusBar()->addWidget(lblArrow, 0); statusBar()->addWidget(lblStatus, 0); statusBar()->addWidget(lblPort, 0); statusBar()->addWidget(lblCoverStat, 0); statusBar()->addWidget(lblBindStat, 0); statusBar()->addWidget(lblIn1, 0); statusBar()->addWidget(lblIn2, 0); statusBar()->addWidget(lblNoize, 0); statusBar()->addWidget(lblPOVer, 0); statusBar()->addWidget(lblSN, 0); statusBar()->addWidget(lblNetNum, 0); statusBar()->addWidget(lblNumLiter, 0); statusBar()->addWidget(lblSysAddress, 0); statusBar()->addWidget(chckBxInterView, 0); statusBar()->addWidget(lblInterView, 0); lblBindStat->setFixedSize(61, 26); lblNoize->setFixedSize(40, 26); lblCoverStat->setFixedSize(77, 26); lblBindStat->setStyleSheet("QLabel { background-color : white; }"); lblNetNum->setText("Сеть:\n"); lblNetNum->setToolTip("Номер сети"); lblNumLiter->setText("Литера:\n"); lblNumLiter->setToolTip("Номер литеры"); lblSN->setText("S/N:\n"); lblSN->setToolTip("Серийный номер контроллера"); lblSysAddress->setText("Системный\nадрес: "); lblSysAddress->setToolTip("Системный адрес контроллера"); lblPOVer->setText("Версия прошивки:\n"); lblPOVer->setToolTip("Версия прошивки контроллера:"); lblInterView->setText("Опрос"); connect(ui->actUpdate, SIGNAL(triggered()), this, SLOT(slotActUpdate())); connect(ui->actExit, SIGNAL(triggered()), this, SLOT(close())); connect(ui->actHelp, SIGNAL(triggered()), this, SLOT(help())); connect(ui->actSetNetParams, SIGNAL(triggered()), this, SLOT(slotSetParams())); connect(ui->actExit, SIGNAL(triggered()), this, SLOT(close())); connect(ui->actAbout, SIGNAL(triggered()), this, SLOT(slotAboutApp())); connect(ui->actRestart, SIGNAL(triggered()), this, SLOT(slotReboot())); connect(ui->actConnectPort, SIGNAL(triggered()), this, SLOT(slotConnectTo())); connect(ui->pbBind, SIGNAL(clicked()), this, SLOT(slotBind())); connect(ui->actTree, SIGNAL(triggered()), this, SLOT(slotAskTree())); connect(chckBxInterView, SIGNAL(clicked(bool)), this, SLOT(slotInterview(bool))); connect(ui->pbSet, SIGNAL(clicked()), this, SLOT(slotSetSettings())); connect(ui->pbCancel, SIGNAL(clicked()), this, SLOT(slotCancelSettings())); connect(ui->act_showHideLog, SIGNAL(triggered(bool)), this, SLOT(slotShowHideLogAct(bool))); connect(ui->pbClear, SIGNAL(clicked(bool)), this, SLOT(clearTxtEdit(bool))); connect(ui->cmbBxCls, SIGNAL(currentIndexChanged(int)), this, SLOT(slotChangeCls(int))); connect(ui->cmbBxCmnd, SIGNAL(currentIndexChanged(QString)), this, SLOT(slotChangeCmnd(QString))); connect(ui->pbSend, SIGNAL(clicked()), this, SLOT(slotPBSend())); connect(ui->pages, SIGNAL(currentChanged(int)), this, SLOT(slotTabChanged(int))); connect(ui->pbLoad, SIGNAL(clicked()), this, SLOT(slotAskTree())); connect(treeMdl, SIGNAL(signalDropTreeNode(int, int, int, int, unsigned char)), this, SLOT(slotDropTreeNode(int, int, int, int, unsigned char))); answerFlag = true; writeInLogFlag = false; customCommFlag = false; lblCoverStat->setText("Крышка\nзакрыта"); lblBindStat->setText("Связывания\nнет"); lblIn1->setText("Вход 1"); lblIn2->setText("Вход 2"); /*this->setMouseTracking(true); ui->tabs->setMouseTracking(true);*/ createDev(); loadCommLst(); loadDevSpecMap(); ui->treeView->setModel(treeMdl); ui->treeView->setSelectionMode(QAbstractItemView::ExtendedSelection); ui->treeView->setDragEnabled(true); ui->treeView->setAcceptDrops(true); ui->treeView->setDropIndicatorShown(true); ui->treeView->setSelectionBehavior(QAbstractItemView::SelectRows); ui->treeView->expandAll(); updateActions(); QVBoxLayout *vbl = new QVBoxLayout(); vbl->addWidget(lgWgt); ui->logTab->setLayout(vbl); //connect(this, SIGNAL(signal_log_click()), logWgt, SLOT(slot_log_clicked())); qDebug() << "start"; if(pb->pairObjArr.isEmpty()) //closeApp("<u><b>Приложение будет закрыто.</b></u><i> Нет доступных подключений.</i>"); qDebug() << "No connection"; else { connect(m_sde, SIGNAL(hasChanged(QStringList)), this, SLOT(printDevices(QStringList))); if(pb->pairObjArr.size() > 1) { dsc = new DialogSelectConnection(pb); connect(dsc, SIGNAL(tryConnSignal(QString, QString)), this, SLOT(sendTryConn(QString, QString))); if(dsc->exec() != dsc->Accepted) closeApp("<u><b>Приложение будет закрыто.</b></u><i> Подключение не выбрано.</i>"); delete dsc; } else { currPair.port = pb->pairObjArr.first().port; currPair.baud = pb->pairObjArr.first().baud; pserial = new AbstractSerial(this); if(!tryConnect(pserial, currPair.port, currPair.baud)) qDebug() << "serial port is not open"; } disconnect(this, SIGNAL(signPackReceive(QByteArray)), this, SLOT(parceAnswerPack(QByteArray))); connect(this, SIGNAL(signPackReceive(QByteArray)), this, SLOT(onPackReceiver(QByteArray))); connect(pserial, SIGNAL(readyRead()), this, SLOT(onProcSerialReceive())); pserial->enableEmitStatus(true); lblPort->setText(currPair.port + "\n" + currPair.baud); lblStatus->setText("Connected"); //lblStatus->setBackgroundRole(QColor(Qt::green)); MainWindow::setWindowTitle(currPair.port + " Конфигуратор Ладога-РК"); commLst.clear(); QTimer::singleShot(50, this, SLOT(createStartCommands())); } }
KSMShutdownDlg::KSMShutdownDlg( QWindow* parent, bool maysd, bool choose, KWorkSpace::ShutdownType sdtype, const QString& theme) : QQuickView(parent), m_result(false) // this is a WType_Popup on purpose. Do not change that! Not // having a popup here has severe side effects. { // window stuff setClearBeforeRendering(true); setColor(QColor(Qt::transparent)); setFlags(Qt::FramelessWindowHint | Qt::BypassWindowManagerHint); QPoint globalPosition(QCursor::pos()); foreach (QScreen *s, QGuiApplication::screens()) { if (s->geometry().contains(globalPosition)) { setScreen(s); break; } } // Qt doesn't set this on unmanaged windows //FIXME: or does it? XChangeProperty( QX11Info::display(), winId(), XInternAtom( QX11Info::display(), "WM_WINDOW_ROLE", False ), XA_STRING, 8, PropModeReplace, (unsigned char *)"logoutdialog", strlen( "logoutdialog" )); //QQuickView *windowContainer = QQuickView::createWindowContainer(m_view, this); //windowContainer->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); QQmlContext *context = rootContext(); context->setContextProperty(QStringLiteral("maysd"), maysd); context->setContextProperty(QStringLiteral("choose"), choose); context->setContextProperty(QStringLiteral("sdtype"), sdtype); QQmlPropertyMap *mapShutdownType = new QQmlPropertyMap(this); mapShutdownType->insert(QStringLiteral("ShutdownTypeDefault"), QVariant::fromValue<int>(KWorkSpace::ShutdownTypeDefault)); mapShutdownType->insert(QStringLiteral("ShutdownTypeNone"), QVariant::fromValue<int>(KWorkSpace::ShutdownTypeNone)); mapShutdownType->insert(QStringLiteral("ShutdownTypeReboot"), QVariant::fromValue<int>(KWorkSpace::ShutdownTypeReboot)); mapShutdownType->insert(QStringLiteral("ShutdownTypeHalt"), QVariant::fromValue<int>(KWorkSpace::ShutdownTypeHalt)); mapShutdownType->insert(QStringLiteral("ShutdownTypeLogout"), QVariant::fromValue<int>(KWorkSpace::ShutdownTypeLogout)); context->setContextProperty(QStringLiteral("ShutdownType"), mapShutdownType); QQmlPropertyMap *mapSpdMethods = new QQmlPropertyMap(this); QSet<Solid::PowerManagement::SleepState> spdMethods = Solid::PowerManagement::supportedSleepStates(); mapSpdMethods->insert(QStringLiteral("StandbyState"), QVariant::fromValue(spdMethods.contains(Solid::PowerManagement::StandbyState))); mapSpdMethods->insert(QStringLiteral("SuspendState"), QVariant::fromValue(spdMethods.contains(Solid::PowerManagement::SuspendState))); mapSpdMethods->insert(QStringLiteral("HibernateState"), QVariant::fromValue(spdMethods.contains(Solid::PowerManagement::HibernateState))); context->setContextProperty(QStringLiteral("spdMethods"), mapSpdMethods); QString bootManager = KConfig(QStringLiteral(KDE_CONFDIR "/kdm/kdmrc"), KConfig::SimpleConfig) .group("Shutdown") .readEntry("BootManager", "None"); context->setContextProperty(QStringLiteral("bootManager"), bootManager); QStringList options; int def, cur; if ( KDisplayManager().bootOptions( rebootOptions, def, cur ) ) { if ( cur > -1 ) { def = cur; } } QQmlPropertyMap *rebootOptionsMap = new QQmlPropertyMap(this); rebootOptionsMap->insert(QStringLiteral("options"), QVariant::fromValue(rebootOptions)); rebootOptionsMap->insert(QStringLiteral("default"), QVariant::fromValue(def)); context->setContextProperty(QStringLiteral("rebootOptions"), rebootOptionsMap); context->setContextProperty(QStringLiteral("screenGeometry"), screen()->geometry()); setModality(Qt::ApplicationModal); // engine stuff KDeclarative::KDeclarative kdeclarative; kdeclarative.setDeclarativeEngine(engine()); kdeclarative.initialize(); kdeclarative.setupBindings(); // windowContainer->installEventFilter(this); QString fileName; if(theme.isEmpty()) { KPackage::Package package = KPackage::PackageLoader::self()->loadPackage(QStringLiteral("Plasma/LookAndFeel")); KConfigGroup cg(KSharedConfig::openConfig(QStringLiteral("kdeglobals")), "KDE"); const QString packageName = cg.readEntry("LookAndFeelPackage", QString()); if (!packageName.isEmpty()) { package.setPath(packageName); } fileName = package.filePath("logoutmainscript"); } else fileName = theme; if (QFile::exists(fileName)) { //qCDebug(KSMSERVER) << "Using QML theme" << fileName; setSource(QUrl::fromLocalFile(fileName)); } else { qWarning() << "Couldn't find a theme for the Shutdown dialog" << fileName; return; } setPosition(screen()->virtualGeometry().center().x() - width() / 2, screen()->virtualGeometry().center().y() - height() / 2); if(!errors().isEmpty()) { qWarning() << errors(); } connect(rootObject(), SIGNAL(logoutRequested()), SLOT(slotLogout())); connect(rootObject(), SIGNAL(haltRequested()), SLOT(slotHalt())); connect(rootObject(), SIGNAL(suspendRequested(int)), SLOT(slotSuspend(int)) ); connect(rootObject(), SIGNAL(rebootRequested()), SLOT(slotReboot())); connect(rootObject(), SIGNAL(rebootRequested2(int)), SLOT(slotReboot(int)) ); connect(rootObject(), SIGNAL(cancelRequested()), SLOT(reject())); connect(rootObject(), SIGNAL(lockScreenRequested()), SLOT(slotLockScreen())); show(); requestActivate(); KWindowSystem::setState(winId(), NET::SkipTaskbar|NET::SkipPager); }
KSMShutdownDlg::KSMShutdownDlg( QWindow* parent, bool maysd, bool choose, KWorkSpace::ShutdownType sdtype, const QString& theme) : QQuickView(parent), //krazy:exclude=qclasses m_result(false) // this is a WType_Popup on purpose. Do not change that! Not // having a popup here has severe side effects. { // window stuff QSurfaceFormat format; format.setAlphaBufferSize(8); setFormat(format); setClearBeforeRendering(true); setColor(QColor(Qt::transparent)); setFlags(Qt::FramelessWindowHint); winId(); // workaround for Qt4.3 setWindowRole() assert // setWindowRole( QStringLiteral("logoutdialog") ); // Qt doesn't set this on unmanaged windows //FIXME: or does it? XChangeProperty( QX11Info::display(), winId(), XInternAtom( QX11Info::display(), "WM_WINDOW_ROLE", False ), XA_STRING, 8, PropModeReplace, (unsigned char *)"logoutdialog", strlen( "logoutdialog" )); setPosition(screen()->virtualGeometry().center().x() - width() / 2, screen()->virtualGeometry().center().y() - height() / 2); setMinimumSize(QSize(300, 200)); //kDebug() << "Creating QML view"; //QQuickView *windowContainer = QQuickView::createWindowContainer(m_view, this); //windowContainer->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); QQmlContext *context = rootContext(); context->setContextProperty(QStringLiteral("maysd"), maysd); context->setContextProperty(QStringLiteral("choose"), choose); context->setContextProperty(QStringLiteral("sdtype"), sdtype); QQmlPropertyMap *mapShutdownType = new QQmlPropertyMap(this); mapShutdownType->insert(QStringLiteral("ShutdownTypeDefault"), QVariant::fromValue((int)KWorkSpace::ShutdownTypeDefault)); mapShutdownType->insert(QStringLiteral("ShutdownTypeNone"), QVariant::fromValue((int)KWorkSpace::ShutdownTypeNone)); mapShutdownType->insert(QStringLiteral("ShutdownTypeReboot"), QVariant::fromValue((int)KWorkSpace::ShutdownTypeReboot)); mapShutdownType->insert(QStringLiteral("ShutdownTypeHalt"), QVariant::fromValue((int)KWorkSpace::ShutdownTypeHalt)); mapShutdownType->insert(QStringLiteral("ShutdownTypeLogout"), QVariant::fromValue((int)KWorkSpace::ShutdownTypeLogout)); context->setContextProperty(QStringLiteral("ShutdownType"), mapShutdownType); QQmlPropertyMap *mapSpdMethods = new QQmlPropertyMap(this); QSet<Solid::PowerManagement::SleepState> spdMethods = Solid::PowerManagement::supportedSleepStates(); mapSpdMethods->insert(QStringLiteral("StandbyState"), QVariant::fromValue(spdMethods.contains(Solid::PowerManagement::StandbyState))); mapSpdMethods->insert(QStringLiteral("SuspendState"), QVariant::fromValue(spdMethods.contains(Solid::PowerManagement::SuspendState))); mapSpdMethods->insert(QStringLiteral("HibernateState"), QVariant::fromValue(spdMethods.contains(Solid::PowerManagement::HibernateState))); context->setContextProperty(QStringLiteral("spdMethods"), mapSpdMethods); QString bootManager = KConfig(QStringLiteral(KDE_CONFDIR "/kdm/kdmrc"), KConfig::SimpleConfig) .group("Shutdown") .readEntry("BootManager", "None"); context->setContextProperty(QStringLiteral("bootManager"), bootManager); QStringList options; int def, cur; if ( KDisplayManager().bootOptions( rebootOptions, def, cur ) ) { if ( cur > -1 ) { def = cur; } } QQmlPropertyMap *rebootOptionsMap = new QQmlPropertyMap(this); rebootOptionsMap->insert(QStringLiteral("options"), QVariant::fromValue(rebootOptions)); rebootOptionsMap->insert(QStringLiteral("default"), QVariant::fromValue(def)); context->setContextProperty(QStringLiteral("rebootOptions"), rebootOptionsMap); setModality(Qt::ApplicationModal); // engine stuff KDeclarative::KDeclarative kdeclarative; kdeclarative.setDeclarativeEngine(engine()); kdeclarative.initialize(); kdeclarative.setupBindings(); // windowContainer->installEventFilter(this); QString fileName = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("ksmserver/themes/%1/main.qml").arg(theme)); if (QFile::exists(fileName)) { //kDebug() << "Using QML theme" << fileName; setSource(QUrl::fromLocalFile(fileName)); } connect(rootObject(), SIGNAL(logoutRequested()), SLOT(slotLogout())); connect(rootObject(), SIGNAL(haltRequested()), SLOT(slotHalt())); connect(rootObject(), SIGNAL(suspendRequested(int)), SLOT(slotSuspend(int)) ); connect(rootObject(), SIGNAL(rebootRequested()), SLOT(slotReboot())); connect(rootObject(), SIGNAL(rebootRequested2(int)), SLOT(slotReboot(int)) ); connect(rootObject(), SIGNAL(cancelRequested()), SLOT(reject())); connect(rootObject(), SIGNAL(lockScreenRequested()), SLOT(slotLockScreen())); show(); // adjustSize(); }