Esempio n. 1
0
void WorldTime::saveChanges()
{
    if (changed) {
        writeTimezoneChanges();
        for (int i = 0;  i < maxVisibleZones; i++) {
            if(listCities.at(i)->isChecked()) {
                listCities.at(i)->setChecked(false);
            }
            listCities.at(i)->setEnabled( true);
        }

        readInTimes();
    }
}
Esempio n. 2
0
void WorldTime::slotNewTzCancelled()
{
    QString currTz;
    if(isEditMode) {
        int selButton = findCurrentButton();
        currTz = strCityTz[selButton];
        frmMap->setZone( QTimeZone( currTz.toLocal8Bit() ) );
        slotNewTz( QTimeZone( currTz.toLocal8Bit() ) );
        if( listCities.at(selButton)->isChecked())
            listCities.at(selButton)->setChecked( false);

    }

    cancelChanges();
    readInTimes();
}
Esempio n. 3
0
WorldTime::WorldTime( QWidget *parent,
                      Qt::WFlags fl )
    : QWidget( parent, fl )
{
#ifdef Q_WS_QWS
    setWindowTitle(tr("World Time"));
#endif
    while (listCities.count())
    {
        delete listCities.takeLast();
    }
    while (listTimes.count())
    {
        delete listTimes.takeLast();
    }

    float dpi = QApplication::desktop()->screen()->logicalDpiY();
    QFont font = QApplication::font();
//     qWarning()<<"DPI:"<<dpi;

    if(dpi < 100) {
        mMode = Minimal;
        setFont(font);
        maxVisibleZones = 3;
    } else if(dpi < 200) {
        mMode = Medium;
        font.setPointSize(font.pointSize() - 1);
        setFont(font);
        maxVisibleZones = 5;
    } else {
        mMode = Tall;
        maxVisibleZones = 4;
    }

    isEditMode = false;

    int columns/*,rows*/;
    columns = 3;/*rows = 3;*/


    // Don't need a select softkey for touchscreen phones as it does nothing
    if ( Qtopia::mousePreferred() )
        QSoftMenuBar::setLabel( this, Qt::Key_Select, QSoftMenuBar::NoLabel );

    // first, work out current number of columns?
    gl = new QGridLayout(this);
    frmMap = new QWorldmap(this);
    QSizePolicy sp = frmMap->sizePolicy();

    if ( qApp->desktop()->width() < qApp->desktop()->height() ) {
        sp.setHeightForWidth(true);
    }

    frmMap->setSizePolicy(sp);
    gl->addWidget(frmMap, 0, 0, 0, columns, Qt::Alignment(Qt::AlignTop));

    for(int i=0; i < maxVisibleZones + 1; i++) {
        gl->setRowStretch(i, 1);
    }

    gl->setColumnStretch(1,4);
    int goodWidth = qApp->desktop()->width() / 2 + 5;

    for (int i = 0; i < maxVisibleZones; i++) {

        listCities.append(new QPushButton(this));
        listCities.at(i)->setFixedWidth(goodWidth );
        if(mMode == Medium)  listCities.at(i)->setMaximumHeight(20);

        listCities.at(i)->setCheckable(true);

        connect(listCities.at(i), SIGNAL(clicked()),
                this, SLOT(slotSetZone()));

        listTimes.append(new CityInfo(this));

        gl->addWidget( listCities.at(i), i + 3, 0 );
        gl->addWidget( listTimes.at(i), i + 3, 1, Qt::Alignment(Qt::AlignVCenter) | Qt::AlignHCenter);
    }


    QMenu *contextMenu = QSoftMenuBar::menuFor(this);

    QAction *a = new QAction(QIcon(":icon/edit"),
                             tr("Select City"), this);
    connect(a, SIGNAL(triggered()), this, SLOT(beginNewTz()));
    contextMenu->addAction(a);
    contextMenu->addSeparator();

    gl->setSpacing(4);
    gl->setMargin(4);

    readInTimes();
    changed = false;
    QObject::connect( qApp, SIGNAL(clockChanged(bool)),
                      this, SLOT(showTime()));

    // now start the timer so we can update the time quickly every second
    timerEvent( 0 );

    frmMap->setContinuousSelect(true);

    connect( frmMap, SIGNAL(newZone(QTimeZone) ),
             this, SLOT( slotNewTz(QTimeZone)));

    if( Qtopia::mousePreferred()) {
        connect( frmMap, SIGNAL(buttonSelected()),
                 this, SLOT(selected()));
    }
    connect( frmMap, SIGNAL(selectZoneCanceled()),
             this, SLOT(slotNewTzCancelled()));

    frmMap->setFocus();
    QTimer::singleShot(0,this,SLOT(slotNewTzCancelled()));
}
Esempio n. 4
0
CityTime::CityTime( QWidget *parent, const char* name,
                            WFlags fl )
    : CityTimeBase( parent, name, fl ),
      strRealTz(0),
      bAdded(false)
{
    Config config( "qpe" );
    config.setGroup( "Time" );
    bWhichClock = config.readBoolEntry( "AMPM", TRUE );
    odebug << QString("%1").arg(bWhichClock) << oendl;
    frmMap->changeClock( bWhichClock );

    char *pEnv;
    pEnv = NULL;
    pEnv = getenv("TZ");
    if ( pEnv )
        strRealTz = pEnv;
    pEnv = NULL;
    pEnv = getenv("HOME");
    if ( pEnv )
        strHome = pEnv;
    // append the labels to their respective lists...
    listCities.setAutoDelete( true );
    listTimes.setAutoDelete( true );

    listCities.append( cmdCity1 );
    listCities.append( cmdCity2 );
    listCities.append( cmdCity3 );

    listTimes.append( lblCTime1 );
    listTimes.append( lblCTime2 );
    listTimes.append( lblCTime3 );


    // kludgy way of getting the screen size so we don't have to depend
    // on a resize event...
    QWidget *d = QApplication::desktop();
    if ( d->width() < d->height() ) {
        // append for that 4 down look
        listCities.append( cmdCity4 );
        listCities.append( cmdCity5 );
        listCities.append( cmdCity6 );
        listTimes.append( lblCTime4 );
        listTimes.append( lblCTime5 );
        listTimes.append( lblCTime6 );
        lblCTime7->hide();
        lblCTime8->hide();
        lblCTime9->hide();
        cmdCity7->hide();
        cmdCity8->hide();
        cmdCity9->hide();
    } else {
        listCities.append( cmdCity7 );
        listCities.append( cmdCity8 );
        listCities.append( cmdCity9 );
        listTimes.append( lblCTime7 );
        listTimes.append( lblCTime8 );
        listTimes.append( lblCTime9 );
        lblCTime4->hide();
        lblCTime5->hide();
        lblCTime6->hide();
        cmdCity4->hide();
        cmdCity5->hide();
        cmdCity6->hide();
    }

    selWidget = frmMap->selectionWidget( this );
    selWidget->hide();
    CityTimeBaseLayout->addWidget( selWidget );
    bAdded = true;
    readInTimes();
    changed = FALSE;
    QObject::connect( qApp, SIGNAL( clockChanged(bool) ),
                      this, SLOT( changeClock(bool) ) );
    // now start the timer so we can update the time quickly every second
    timerEvent( 0 );
}