rem: topLayout->addMultiCellWidget( workDaysBox, 6, 6, 0, 1 );
context:     KOPrefsDialogTime( QWidget *parent, const char *name )      : KPrefsModule( KOPrefs::instance(), parent, name )    {      QBoxLayout *topTopLayout = new QVBoxLayout( this );      QWidget *topFrame = new QWidget( this );      topTopLayout->addWidget( topFrame );      QGridLayout *topLayout = new QGridLayout(topFrame,5,2);      topLayout->setSpacing( KDialog::spacingHint() );      QHBox *timeZoneBox = new QHBox( topFrame );      topLayout->addMultiCellWidget( timeZoneBox, 0, 0, 0, 1 );      new QLabel( i18n("Timezone:"), timeZoneBox );      mTimeZoneCombo = new QComboBox( timeZoneBox );      connect( mTimeZoneCombo, SIGNAL( activated( int ) ),               SLOT( slotWidChanged() ) );      FILE *f;      char tempstring[101] = "Unknown";      QString sCurrentlySet(i18n("Unknown"));      int nCurrentlySet = 0;      QStringList list;      // read the currently set time zone    #if defined(USE_SOLARIS)       // MARCO        char buf[MAXPATHLEN];        snprintf(buf, MAXPATHLEN,                "/bin/fgrep 'TZ=' %s | /bin/head -n 1 | /bin/cut -b 4-",                INITFILE);        if (f = popen(buf, "r"))          {           if (fgets(buf, MAXPATHLEN - 1, f) != NULL)             {               buf[strlen(buf) - 1] = '\0';               sCurrentlySet = QString(buf);             }           pclose(f);          }    #else      if((f = fopen("/etc/timezone", "r")) != NULL) {        // get the currently set timezone        fgets(tempstring, 100, f);        tempstring[strlen(tempstring) - 1] = '\0';        sCurrentlySet = QString(tempstring);        fclose(f);      }    #endif // !USE_SOLARIS      mTimeZoneCombo->insertItem(i18n("[No selection]"));      // Read all system time zones    #if defined(USE_SOLARIS)       // MARCO        snprintf(buf, MAXPATHLEN,               "/bin/find %s \\( -name src -prune \\) -o -type f -print | /bin/cut -b %d-",               ZONEINFODIR, strlen(ZONEINFODIR) + 2);        if (f = popen(buf, "r"))          {           while(fgets(buf, MAXPATHLEN - 1, f) != NULL)             {               buf[strlen(buf) - 1] = '\0';               list.append(buf);             }           pclose(f);          }    #else      f = popen("grep -e  ^[^#] /usr/share/zoneinfo/zone.tab | cut -f 3","r");      if (!f) return;      while(fgets(tempstring, 100, f) != NULL) {        tempstring[strlen(tempstring)-1] = '\0';        list.append(i18n(tempstring));        tzonenames << tempstring;      }      pclose(f);    #endif // !USE_SOLARIS      list.sort();      mTimeZoneCombo->insertStringList(list);        // find the currently set time zone and select it      for (int i = 0; i < mTimeZoneCombo->count(); i++)        {          if (mTimeZoneCombo->text(i) == sCurrentlySet)            {             nCurrentlySet = i;             break;            }        }      mTimeZoneCombo->setCurrentItem(nCurrentlySet);      KPrefsWidTime *dayBegins =        addWidTime( KOPrefs::instance()->dayBeginsItem(), topFrame );      topLayout->addWidget( dayBegins->label(), 1, 0 );      topLayout->addWidget(dayBegins->timeEdit(), 1, 1 );      KPrefsWidTime *defaultTime =            addWidTime( KOPrefs::instance()->startTimeItem(), topFrame );      topLayout->addWidget( defaultTime->label(), 2, 0);      topLayout->addWidget( defaultTime->timeEdit(), 2, 1);      KPrefsWidTime *defaultDuration =            addWidTime( KOPrefs::instance()->defaultDurationItem(), topFrame );      topLayout->addWidget( defaultDuration->label(), 3, 0);      topLayout->addWidget( defaultDuration->timeEdit(), 3, 1);      QStringList alarmList;      alarmList << i18n("1 minute") << i18n("5 minutes") << i18n("10 minutes")                << i18n("15 minutes") << i18n("30 minutes");      topLayout->addWidget(new QLabel(i18n("Default alarm time:"),topFrame),                           4,0);      mAlarmTimeCombo = new QComboBox(topFrame);      connect( mAlarmTimeCombo, SIGNAL( activated( int ) ),               SLOT( slotWidChanged() ) );      mAlarmTimeCombo->insertStringList(alarmList);      topLayout->addWidget(mAlarmTimeCombo,4,1);      QGroupBox *workingHoursGroup = new QGroupBox(1,Horizontal,                                                   i18n("Working Hours"),                                                   topFrame);      topLayout->addMultiCellWidget(workingHoursGroup,5,5,0,1);      QHBox *workDaysBox = new QHBox( workingHoursGroup );      // Respect start of week setting      int weekStart=KGlobal::locale()->weekStartDay();      for ( int i = 0; i < 7; ++i ) {        const KCalendarSystem *calSys = KOGlobals::self()->calendarSystem();        QString weekDayName = calSys->weekDayName( (i + weekStart + 6)%7 + 1, true );        if ( KOPrefs::instance()->mCompactDialogs ) {          weekDayName = weekDayName.left( 1 );        }        mWorkDays[ (i + weekStart + 6)%7 ] = new QCheckBox( weekDayName, workDaysBox );      }      for ( int i = 0; i < 7; ++i ) {        connect( mWorkDays[i], SIGNAL( stateChanged( int ) ),               SLOT( slotWidChanged() ) );      }      QHBox *workStartBox = new QHBox(workingHoursGroup);      addWidTime( KOPrefs::instance()->workingHoursStartItem(), workStartBox );      QHBox *workEndBox = new QHBox(workingHoursGroup);      addWidTime( KOPrefs::instance()->workingHoursEndItem(), workEndBox );      addWidBool( KOPrefs::instance()->excludeHolidaysItem(),                  workingHoursGroup );      topLayout->addMultiCellWidget( workDaysBox, 6, 6, 0, 1 );      topLayout->setRowStretch(7,1);      load();    }