// check $oldlayouts and $nonlatin groups for XFree 4.3 and later OldLayouts* X11Helper::loadOldLayouts(const TQString& rulesFile) { static const char* oldLayoutsTag = "! $oldlayouts"; static const char* nonLatinLayoutsTag = "! $nonlatin"; TQStringList m_oldLayouts; TQStringList m_nonLatinLayouts; TQFile f(rulesFile); if (f.open(IO_ReadOnly)) { TQTextStream ts(&f); TQString line; while (!ts.eof()) { line = ts.readLine().simplifyWhiteSpace(); if( line.find(oldLayoutsTag) == 0 ) { line = line.mid(strlen(oldLayoutsTag)); line = line.mid(line.find('=')+1).simplifyWhiteSpace(); while( !ts.eof() && line.endsWith("\\") ) line = line.left(line.length()-1) + ts.readLine(); line = line.simplifyWhiteSpace(); m_oldLayouts = TQStringList::split(TQRegExp("\\s"), line); // kdDebug() << "oldlayouts " << m_oldLayouts.join("|") << endl; if( !m_nonLatinLayouts.empty() ) break; } else if( line.find(nonLatinLayoutsTag) == 0 ) { line = line.mid(strlen(nonLatinLayoutsTag)+1).simplifyWhiteSpace(); line = line.mid(line.find('=')+1).simplifyWhiteSpace(); while( !ts.eof() && line.endsWith("\\") ) line = line.left(line.length()-1) + ts.readLine(); line = line.simplifyWhiteSpace(); m_nonLatinLayouts = TQStringList::split(TQRegExp("\\s"), line); // kdDebug() << "nonlatin " << m_nonLatinLayouts.join("|") << endl; if( !m_oldLayouts.empty() ) break; } } f.close(); } OldLayouts* oldLayoutsStruct = new OldLayouts(); oldLayoutsStruct->oldLayouts = m_oldLayouts; oldLayoutsStruct->nonLatinLayouts = m_nonLatinLayouts; return oldLayoutsStruct; }
TQString TDEStorageDevice::friendlyName() { // Return the actual storage device name TQString devicevendorid = vendorEncoded(); TQString devicemodelid = modelEncoded(); devicevendorid.replace("\\x20", " "); devicemodelid.replace("\\x20", " "); devicevendorid = devicevendorid.stripWhiteSpace(); devicemodelid = devicemodelid.stripWhiteSpace(); devicevendorid = devicevendorid.simplifyWhiteSpace(); devicemodelid = devicemodelid.simplifyWhiteSpace(); TQString devicename = devicevendorid + " " + devicemodelid; devicename = devicename.stripWhiteSpace(); devicename = devicename.simplifyWhiteSpace(); if (devicename != "") { return devicename; } if (isDiskOfType(TDEDiskDeviceType::Camera)) { return TDEGenericDevice::friendlyName(); } if (isDiskOfType(TDEDiskDeviceType::Floppy)) { return friendlyDeviceType(); } TQString label = diskLabel(); if (label.isNull()) { if (deviceSize() > 0) { if (checkDiskStatus(TDEDiskDeviceStatus::Hotpluggable)) { label = i18n("%1 Removable Device").arg(deviceFriendlySize()); } else { label = i18n("%1 Fixed Storage Device").arg(deviceFriendlySize()); } } } if (!label.isNull()) { return label; } return friendlyDeviceType(); }
// RETURN: <0 => error // =0 => no error, no update // >0 => no error, update happened // int KPCMCIACard::refresh() { ////////////////////////////////////////////// ///////////// LINUX ONLY /////////////////////////////////////////////// #ifdef __linux__ struct timeval tv; cs_status_t status; fd_set rfds; int rc; event_t event; struct stat sb; config_info_t cfg; KPCMCIACard oldValues(*this); int updated = 0; oldValues._fd = -1; #define CHECK_CHANGED(x, y) do { if (x.y != y) updated = 1; } while(0) /** * Get any events on the pcmcia device */ tv.tv_sec = 0; tv.tv_usec = 0; FD_ZERO(&rfds); FD_SET(_fd, &rfds); rc = select(_fd+1, &rfds, NULL, NULL, &tv); if (rc > 0) { rc = read(_fd, (void *)&event, 4); if (rc == 4) { int thisEvent = -1; // thisEvent is the index of event in event_tag for (unsigned int j = 0; j < NTAGS; j++) { if (event_tag[j].event == event) { thisEvent = j; break; } if (thisEvent < 0) return -1; } } else { return -1; } } else return updated; if (event == CS_EVENT_EJECTION_REQUEST) { _interrupt = -1; _ports = ""; _device = ""; _module = ""; _type = ""; _iotype = 0; _inttype = 0; _cfgbase = 0; _cardname = i18n("Empty slot."); _vcc = _vpp = _vpp2 = 0; return updated; } /** * Read in the stab file. */ if (!stat(_stabPath.latin1(), &sb) && sb.st_mtime >= _last) { TQFile f(_stabPath.latin1()); if (f.open(IO_ReadOnly)) { TQTextStream ts(&f); bool foundit = false; TQString _thisreg = "^Socket %1: "; TQRegExp thisreg ( _thisreg.arg(_num) ); if (flock(f.handle(), LOCK_SH)) return updated; _last = sb.st_mtime; // find the card while(!foundit) { TQString s; if (ts.eof()) break; s = ts.readLine(); if (s.contains(thisreg)) { _cardname = s.right(s.length() - s.find(':') - 1); _cardname = _cardname.stripWhiteSpace(); foundit = true; CHECK_CHANGED(oldValues, _cardname); } } // read it in if (foundit && !ts.eof()) { // FIXME: ts.eof() is a bad error!! TQString s = ts.readLine(); int end; s.simplifyWhiteSpace(); end = s.find(TQRegExp("[ \r\t\n]")); s = s.remove(0, end+1); end = s.find(TQRegExp("[ \r\t\n]")); _type = s; _type.truncate(end); s = s.remove(0, end+1); end = s.find(TQRegExp("[ \r\t\n]")); _module = s; _module.truncate(end); s = s.remove(0, end+1); end = s.find(TQRegExp("[ \r\t\n]")); s = s.remove(0, end+1); end = s.find(TQRegExp("[ \r\t\n]")); _device = s; _device.truncate(end); s = s.remove(0, end+1); CHECK_CHANGED(oldValues, _type); CHECK_CHANGED(oldValues, _module); CHECK_CHANGED(oldValues, _device); } flock(f.handle(), LOCK_UN); f.close(); } else return -1; } else return updated; /** * Get the card's status and configuration information */ status.Function = 0; ioctl(_fd, DS_GET_STATUS, &status); memset(&cfg, 0, sizeof(cfg)); ioctl(_fd, DS_GET_CONFIGURATION_INFO, &cfg); // status is looked up in the table at the top if (cfg.Attributes & CONF_VALID_CLIENT) { if (cfg.AssignedIRQ == 0) _interrupt = -1; else _interrupt = cfg.AssignedIRQ; if (cfg.NumPorts1 > 0) { int stop = cfg.BasePort1 + cfg.NumPorts1; if (cfg.NumPorts2 > 0) { if (stop == cfg.BasePort2) { _ports.sprintf("%#x-%#x", cfg.BasePort1, stop+cfg.NumPorts2-1); } else { _ports.sprintf("%#x-%#x, %#x-%#x", cfg.BasePort1, stop-1, cfg.BasePort2, cfg.BasePort2+cfg.NumPorts2-1); } } else { _ports.sprintf("%#x-%#x", cfg.BasePort1, stop-1); } } CHECK_CHANGED(oldValues, _ports); CHECK_CHANGED(oldValues, _interrupt); } _vcc = cfg.Vcc; _vpp = cfg.Vpp1; _vpp2 = cfg.Vpp2; CHECK_CHANGED(oldValues, _vcc); CHECK_CHANGED(oldValues, _vpp); CHECK_CHANGED(oldValues, _vpp2); _inttype = cfg.IntType; CHECK_CHANGED(oldValues, _inttype); _iotype = cfg.IOAddrLines; CHECK_CHANGED(oldValues, _iotype); _cfgbase = cfg.ConfigBase; CHECK_CHANGED(oldValues, _cfgbase); if (status.CardState & CS_EVENT_CARD_DETECT) _status |= CARD_STATUS_PRESENT; if (status.CardState & CS_EVENT_CARD_REMOVAL) _status &= ~CARD_STATUS_PRESENT; if (event & CS_EVENT_CARD_REMOVAL) _status &= ~CARD_STATUS_PRESENT; if (!(status.CardState & CS_EVENT_PM_SUSPEND)) { if (status.CardState & CS_EVENT_READY_CHANGE) { _status |= CARD_STATUS_READY; _status &= ~(CARD_STATUS_BUSY|CARD_STATUS_SUSPEND); } else { _status |= CARD_STATUS_BUSY; _status &= ~(CARD_STATUS_READY|CARD_STATUS_SUSPEND); } } else if (status.CardState & CS_EVENT_PM_SUSPEND) { _status |= CARD_STATUS_SUSPEND; _status &= ~(CARD_STATUS_READY|CARD_STATUS_BUSY); } CHECK_CHANGED(oldValues, _status); return updated; #else return 0; #endif }
bool KXSConfigDialog::create() { TQVBoxLayout *topLayout = new TQVBoxLayout(plainPage(), spacingHint()); TQHBoxLayout *tqlayout = new TQHBoxLayout(topLayout, spacingHint()); TQVBox *controlLayout = new TQVBox(plainPage()); controlLayout->setSpacing(spacingHint()); tqlayout->addWidget(controlLayout); ((TQBoxLayout*)controlLayout->tqlayout())->addStrut(120); KConfig config(mConfigFile); TQString xmlFile = "/doesntexist"; #ifdef XSCREENSAVER_CONFIG_DIR xmlFile = XSCREENSAVER_CONFIG_DIR; #endif xmlFile += "/" + mExeName + ".xml"; if ( TQFile::exists( xmlFile ) ) { // We can use the xscreensaver xml config files. KXSXml xmlParser(controlLayout); xmlParser.parse( xmlFile ); mConfigItemList = *xmlParser.items(); TQWidget *spacer = new TQWidget(controlLayout); controlLayout->setStretchFactor(spacer, 1 ); TQString descr = xmlParser.description(); if ( !descr.isEmpty() ) { descr.replace('\n',' '); descr = descr.simplifyWhiteSpace(); TQLabel *l = new TQLabel( i18n( descr.utf8() ), plainPage() ); l->tqsetAlignment ( WordBreak ); topLayout->addWidget( l ); } } else { // fall back to KDE's old config files. int idx = 0; while (true) { TQString group = TQString("Arg%1").tqarg(idx); if (config.hasGroup(group)) { config.setGroup(group); TQString type = config.readEntry("Type"); if (type == "Range") { KXSRangeControl *rc = new KXSRangeControl(controlLayout, group, config); mConfigItemList.append(rc); } else if (type == "DoubleRange") { KXSDoubleRangeControl *rc = new KXSDoubleRangeControl(controlLayout, group, config); mConfigItemList.append(rc); } else if (type == "Check") { KXSCheckBoxControl *cc = new KXSCheckBoxControl(controlLayout, group, config); mConfigItemList.append(cc); } else if (type == "DropList") { KXSDropListControl *dl = new KXSDropListControl(controlLayout, group, config); mConfigItemList.append(dl); } } else { break; } idx++; } if ( idx == 0 ) return false; } TQPtrListIterator<KXSConfigItem> it( mConfigItemList ); KXSConfigItem *item; while ( (item = it.current()) != 0 ) { ++it; item->read( config ); TQWidget *i = dynamic_cast<TQWidget*>(item); if (i) { connect( i, TQT_SIGNAL(changed()), TQT_SLOT(slotChanged()) ); } } mPreviewProc = new KProcess; connect(mPreviewProc, TQT_SIGNAL(processExited(KProcess *)), TQT_SLOT(slotPreviewExited(KProcess *))); mPreviewTimer = new TQTimer(this); connect(mPreviewTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotNewPreview())); mPreview = new TQWidget(plainPage()); mPreview->setFixedSize(250, 200); // mPreview->setBackgroundMode(TQWidget::NoBackground); mPreview->setBackgroundColor(TQt::black); tqlayout->add(mPreview); show(); // So that hacks can XSelectInput ButtonPressMask XSelectInput(qt_xdisplay(), mPreview->winId(), widgetEventMask ); slotPreviewExited(0); return true; }