From 6d0df38a805c5560b0815df62b212d4be0913154 Mon Sep 17 00:00:00 2001 From: sandman Date: Thu, 27 Jun 2002 01:44:44 +0000 Subject: Made the launcher dialog "liquid compatible": remvoed the ui file and hand-coded the gui with smarter palette handling. --- (limited to 'core/launcher/shutdownimpl.cpp') diff --git a/core/launcher/shutdownimpl.cpp b/core/launcher/shutdownimpl.cpp index 06ed756..0c5b4f6 100644 --- a/core/launcher/shutdownimpl.cpp +++ b/core/launcher/shutdownimpl.cpp @@ -27,69 +27,141 @@ #include #include #include +#include +#include +static void changeButtonColor ( QPushButton *btn, const QColor &col ) +{ + QPalette pal = btn-> palette ( ); + + pal. setColor ( QPalette::Active, QColorGroup::Button, col ); + pal. setColor ( QPalette::Disabled, QColorGroup::Button, col ); + pal. setColor ( QPalette::Inactive, QColorGroup::Button, col ); + + btn-> setPalette ( pal ); +} + -#include ShutdownImpl::ShutdownImpl( QWidget* parent, const char *name, WFlags fl ) - : Shutdown( parent, name, fl ) + : QWidget ( parent, name, fl ) { - timer = new QTimer( this ); - connect( timer, SIGNAL(timeout()), this, SLOT(timeout()) ); + setCaption ( tr( "Shut down..." )); + + QVBoxLayout *vbox = new QVBoxLayout ( this ); + vbox-> setSpacing ( 3 ); + vbox-> setMargin ( 6 ); + + QButtonGroup *btngrp = new QButtonGroup ( this ); + + btngrp-> setTitle ( tr( "Terminate" )); + btngrp-> setColumnLayout ( 0, Qt::Vertical ); + btngrp-> layout ( )-> setSpacing ( 0 ); + btngrp-> layout ( )-> setMargin ( 0 ); + + QGridLayout *grid = new QGridLayout ( btngrp-> layout ( )); + grid-> setAlignment ( Qt::AlignTop ); + grid-> setSpacing ( 3 ); + grid-> setMargin ( 7 ); + + QPushButton *quit = new QPushButton ( tr( "Terminate Opie" ), btngrp, "quit" ); + changeButtonColor ( quit, QColor ( 236, 236, 179 )); + btngrp-> insert ( quit, 4 ); + grid-> addWidget ( quit, 1, 1 ); + + QPushButton *reboot = new QPushButton ( tr( "Reboot" ), btngrp, "reboot" ); + changeButtonColor ( reboot, QColor( 236, 183, 181 )); + btngrp-> insert ( reboot, 2 ); + grid-> addWidget( reboot, 1, 0 ); + + QPushButton *restart = new QPushButton ( tr( "Restart Opie" ), btngrp, "restart" ); + changeButtonColor ( restart, QColor( 236, 236, 179 )); + btngrp-> insert ( restart, 3 ); + grid-> addWidget ( restart, 0, 1 ); - connect( ButtonGroup1, SIGNAL(clicked(int)), this, SLOT(buttonClicked(int)) ); - connect( cancel, SIGNAL(clicked()), this, SLOT(cancelClicked()) ); + QPushButton *shutdown = new QPushButton( tr( "Shutdown" ), btngrp, "shutdown" ); + changeButtonColor ( shutdown, QColor( 236, 183, 181 )); + btngrp-> insert ( shutdown, 1 ); + grid-> addWidget ( shutdown, 0, 0 ); + + vbox-> addWidget ( btngrp ); + + m_info = new QLabel ( this, "info" ); + m_info-> setText( tr( "

\n" "These termination options are provided primarily for use while developing and testing the Opie system. In a normal environment, these concepts are unnecessary." ) ); + vbox-> addWidget ( m_info ); + + m_progress = new QProgressBar ( this, "progressBar" ); + m_progress-> setFrameShape ( QProgressBar::Panel ); + m_progress-> setFrameShadow ( QProgressBar::Sunken ); + m_progress-> setTotalSteps ( 20 ); + m_progress-> setIndicatorFollowsStyle ( false ); + vbox-> addWidget ( m_progress ); + + vbox-> addItem ( new QSpacerItem ( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding )); + + QPushButton *cancel = new QPushButton ( tr( "Cancel" ), this, "cancel" ); + changeButtonColor ( cancel, QColor( 181, 222, 178 )); + cancel-> setDefault ( true ); + cancel-> setSizePolicy ( QSizePolicy ( QSizePolicy::Minimum, QSizePolicy::Expanding, cancel-> sizePolicy ( ). hasHeightForWidth ( ))); + vbox-> addWidget ( cancel ); + + m_timer = new QTimer ( this ); + connect ( m_timer, SIGNAL( timeout ( )), this, SLOT( timeout ( ))); + + connect ( btngrp, SIGNAL( clicked ( int )), this, SLOT( buttonClicked ( int ))); + connect ( cancel, SIGNAL( clicked ( )), this, SLOT( cancelClicked ( ))); + + m_progress-> hide ( ); + Global::hideInputMethod ( ); - progressBar->hide(); - Global::hideInputMethod(); #ifdef QT_QWS_CUSTOM - QPushButton *sb = Shutdown::shutdown; - sb->hide(); + shutdown-> hide ( ); #endif } -void ShutdownImpl::buttonClicked( int b ) +void ShutdownImpl::buttonClicked ( int b ) { - progress = 0; + m_counter = 0; + switch ( b ) { case 1: - operation = ShutdownSystem; + m_operation = ShutdownSystem; break; case 2: - operation = RebootSystem; + m_operation = RebootSystem; break; case 3: - operation = RestartDesktop; + m_operation = RestartDesktop; break; case 4: - operation = TerminateDesktop; + m_operation = TerminateDesktop; break; } - info->hide(); - progressBar->show(); - timer->start( 300 ); - timeout(); + m_info-> hide ( ); + m_progress-> show ( ); + m_timer-> start ( 300 ); + timeout ( ); } -void ShutdownImpl::cancelClicked() +void ShutdownImpl::cancelClicked ( ) { - progressBar->hide(); - info->show(); - if ( timer->isActive() ) - timer->stop(); + m_progress-> hide ( ); + m_info-> show ( ); + if ( m_timer-> isActive ( )) + m_timer-> stop ( ); else - close(); + close ( ); } -void ShutdownImpl::timeout() +void ShutdownImpl::timeout ( ) { - if ( (progress+=2) > progressBar->totalSteps() ) { - progressBar->hide(); - timer->stop(); - emit shutdown( operation ); - } else { - progressBar->setProgress( progress ); - } + if (( m_counter += 2 ) > m_progress-> totalSteps ( )) { + m_progress-> hide ( ); + m_timer-> stop ( ); + emit shutdown ( m_operation ); + } + else + m_progress-> setProgress ( m_counter ); } -- cgit v0.9.0.2