bool KXSXmlHandler::startElement( const TQString&, const TQString&, const TQString& qName, const TQXmlAttributes &atts ) { KXSConfigItem *i = 0; TQString id = atts.value("id"); if ( qName == "number" ) { TQString sLow = atts.value( "low" ); TQString sHigh = atts.value( "high" ); if ( sLow.contains( '.' ) || sHigh.contains( '.' ) ) { if ( parent ) i = new KXSDoubleRangeControl( parent, id, atts ); else i = new KXSDoubleRangeItem( id, atts ); } else { if ( parent ) i = new KXSRangeControl( parent, id, atts ); else i = new KXSRangeItem( id, atts ); } } else if ( qName == "boolean" ) { if ( parent ) i = new KXSCheckBoxControl( parent, id, atts ); else i = new KXSBoolItem( id, atts ); } else if ( qName == "string" ) { if ( parent ) i = new KXSLineEditControl( parent, id, atts ); else i = new KXSStringItem( id, atts ); } else if ( qName == "file" ) { if ( parent ) i = new KXSFileControl( parent, id, atts ); else i = new KXSStringItem( id, atts ); } else if ( qName == "_description" ) { inDesc = true; } else if ( qName == "select" ) { if ( parent ) selItem = new KXSDropListControl( parent, id, atts ); else selItem = new KXSSelectItem( id, atts ); i = selItem; } else if ( qName == "option" && selItem ) { selItem->addOption( atts ); } else if ( qName == "hgroup" && parent ) { TQHBox *hb = new TQHBox( parent ); mParentStack.push( hb ); parent = hb; } else if ( qName == "vgroup" && parent ) { TQVBox *vb = new TQVBox( parent ); mParentStack.push( vb ); parent = vb; } if ( i ) mConfigItemList.append( i ); return true; }
void SearchCommand::ifindInit( const TQString &flags ) { long f = 0; if ( flags.contains( 'b' ) ) f |= KFindDialog::FindBackwards; if ( flags.contains( 'c' ) ) f |= KFindDialog::FromCursor; if ( flags.contains( 'r' ) ) f |= KFindDialog::RegularExpression; if ( flags.contains( 's' ) ) f |= KFindDialog::CaseSensitive; m_ifindFlags = f; }
// this is used to find out which devices are currently // on system static bool GetDmesgInfo(TQListView *lBox, const char *filter, void func(TQListView *, TQString s)) { TQFile *dmesg = new TQFile("/var/run/dmesg.boot"); bool usepipe = false; FILE *pipe = NULL; TQTextStream *t; bool seencpu = false; TQString s; bool found = false; if (dmesg->exists() && dmesg->open(IO_ReadOnly)) { t = new TQTextStream(dmesg); } else { delete dmesg; pipe = popen("/sbin/dmesg", "r"); if (!pipe) return false; usepipe = true; t = new TQTextStream(pipe, IO_ReadOnly); } TQListViewItem *olditem = NULL; while(!(s = t->readLine().local8Bit()).isEmpty()) { if (!seencpu) { if (s.contains("cpu")) seencpu = true; else continue; } if (s.contains("boot device") || s.contains("WARNING: old BSD partition ID!")) break; if (!filter || (filter[0] == '^' && s.find(&filter[1]) == 0) || (filter[0] != '^' && s.contains(filter))) { if (func) func(lBox, s); else olditem = new TQListViewItem(lBox, olditem, s); found = true; } } delete t; if (pipe) pclose(pipe); else { dmesg->close(); delete dmesg; } return found; }
void HTMLLinkElementImpl::parseAttribute(AttributeImpl *attr) { switch (attr->id()) { case ATTR_HREF: m_url = getDocument()->completeURL( tdehtml::parseURL(attr->value()).string() ); process(); break; case ATTR_REL: case ATTR_TYPE: process(); break; case ATTR_TITLE: // ### when title changes we have to reconsider our alternative // stylesheet choice break; case ATTR_MEDIA: m_media = attr->value().string().lower(); process(); break; case ATTR_DISABLED: { bool m_oldisDisabled = m_isDisabled; m_isDisabled = attr->val(); if (m_oldisDisabled != m_isDisabled) { if (isLoading()) { if (m_oldisDisabled) getDocument()->addPendingSheet(); else if (!m_alternate) getDocument()->styleSheetLoaded(); } if (m_oldisDisabled) { // enabling: if it's an alternate sheet, pretend it's not. m_alternate = false; } else if (!m_alternate) { // disabling: recheck alternate status TQString rel = getAttribute(ATTR_REL).string().lower(); TQString type = getAttribute(ATTR_TYPE).string().lower(); m_alternate = (type.contains("text/css") || rel.contains("stylesheet")) && rel.contains("alternate"); } if (isLoading()) break; if (!m_sheet && !m_isDisabled) { process(); if (isLoading() && m_alternate) getDocument()->addPendingSheet(); m_alternate = false; } else getDocument()->updateStyleSelector(); // Update the style selector. } break; } default: HTMLElementImpl::parseAttribute(attr); } }
void HTMLLinkElementImpl::process() { if (!inDocument()) return; TQString type = getAttribute(ATTR_TYPE).string().lower(); TQString rel = getAttribute(ATTR_REL).string().lower(); TDEHTMLPart* part = getDocument()->view() ? getDocument()->view()->part() : 0; // IE extension: location of small icon for locationbar / bookmarks // Uses both "shortcut icon" and "icon" if ( part && rel.contains("icon") && !m_url.isEmpty() && !part->parentPart()) part->browserExtension()->setIconURL( KURL(m_url.string()) ); // Stylesheet else if (!m_isDisabled && (type.contains("text/css") || rel.contains("stylesheet"))) { // no need to load style sheets which aren't for the screen output // ### there may be in some situations e.g. for an editor or script to manipulate if( m_media.isNull() || m_media.contains("screen") || m_media.contains("all") || m_media.contains("print") ) { m_loading = true; // Add ourselves as a pending sheet, but only if we aren't an alternate // stylesheet. Alternate stylesheets don't hold up render tree construction. m_alternate = rel.contains("alternate"); if (!isAlternate()) getDocument()->addPendingSheet(); TQString chset = getAttribute( ATTR_CHARSET ).string(); // set chset to charset of referring document when attribute CHARSET is absent. // http://www.w3.org/TR/CSS21/syndata.html(4.4) if (chset.isEmpty() && part) chset = part->encoding(); if (m_cachedSheet) m_cachedSheet->deref(this); m_cachedSheet = getDocument()->docLoader()->requestStyleSheet(m_url, chset); if (m_cachedSheet) { m_isCSSSheet = true; m_cachedSheet->ref(this); } else if (!isAlternate()) { // Error requesting sheet; decrement pending sheet count getDocument()->styleSheetLoaded(); } } } else if (m_sheet) { // we no longer contain a stylesheet, e.g. perhaps rel or type was changed m_sheet->deref(); m_sheet = 0; m_isCSSSheet = false; getDocument()->updateStyleSelector(); } }
TQString ArkUtils::getTimeStamp(const TQString &_month, const TQString &_day, const TQString &_yearOrTime) { // Make the date format sortable. // Month is in _month, day is in _day. // In _yearOrTime is either a year or a time. // If it's March, we'll see the year for all dates up to October 1999. // (five months' difference - e.g., if it's Apr, then get years up to Nov) char month[4]; strncpy(month, _month.ascii(), 3); month[3] = '\0'; int nMonth = getMonth(month); int nDay = _day.toInt(); kdDebug(1601) << "Month is " << nMonth << ", Day is " << nDay << endl; time_t t = time(0); if (t == -1) exit(1); struct tm *now = localtime(&t); int thisYear = now->tm_year + 1900; int thisMonth = now->tm_mon + 1; TQString year, timestamp; if (_yearOrTime.contains(":")) // it has a timestamp so we have to figure out the year { year.sprintf("%d", ArkUtils::getYear(nMonth, thisYear, thisMonth)); timestamp = _yearOrTime; } else { year = _yearOrTime; if (year.right(1) == " ") year = year.left(4); if (year.left(1) == " ") year = year.right(4); timestamp = "??:??"; } TQString retval; retval.sprintf("%s-%.2d-%.2d %s", year.utf8().data(), nMonth, nDay, timestamp.utf8().data()); return retval; }
bool GetInfo_SCSI (TQListView *lbox) { if (!GetDmesgInfo(lbox, "scsibus", NULL)) new TQListViewItem(lbox, i18n("No SCSI devices found.")); // remove the 'waiting %d seconds for devices to settle' message TQListViewItem *lvitem = lbox->firstChild(); for(; lvitem; lvitem = lvitem->nextSibling()) { TQString s = lvitem->text(0); if (s.contains("seconds for devices to settle")) { lbox->removeItem(lvitem); break; } } return true; }
void ShortcutsModule::createActionsSequence() { TDEAccelActions& actions = m_actionsSequence; for( uint i = 0; i < actions.count(); i++ ) { TQString sConfigKey = actions[i].name(); //kdDebug(125) << "sConfigKey: " << sConfigKey << endl; int iLastSpace = sConfigKey.findRev( ' ' ); bool bIsNum = false; if( iLastSpace >= 0 ) sConfigKey.mid( iLastSpace+1 ).toInt( &bIsNum ); //kdDebug(125) << "sConfigKey: " << sConfigKey // << " bIsNum: " << bIsNum << endl; if( !bIsNum && !sConfigKey.contains( ':' ) ) { actions[i].setConfigurable( false ); actions[i].setName( TQString::null ); } } }
static int lookupDevice(const char *x) { TQFile df("/proc/devices"); TQString thisreg; thisreg = "^[0-9]+ %1$"; thisreg = thisreg.arg(x); if (df.open(IO_ReadOnly)) { TQTextStream t(&df); TQString s; while (!t.eof()) { s = t.readLine(); if (s.contains(TQRegExp(thisreg))) { int n = (s.left(3).stripWhiteSpace()).toInt(); df.close(); return n; } } df.close(); } return -1; }
void KCMStyle::loadStyle( TDEConfig& config ) { cbStyle->clear(); // Create a dictionary of WidgetStyle to Name and Desc. mappings, // as well as the config page info styleEntries.clear(); styleEntries.setAutoDelete(true); TQString strWidgetStyle; TQStringList list = TDEGlobal::dirs()->findAllResources("themes", "*.themerc", true, true); for (TQStringList::iterator it = list.begin(); it != list.end(); ++it) { KSimpleConfig config( *it, true ); if ( !(config.hasGroup("KDE") && config.hasGroup("Misc")) ) continue; config.setGroup("KDE"); strWidgetStyle = config.readEntry("WidgetStyle"); if (strWidgetStyle.isNull()) continue; // We have a widgetstyle, so lets read the i18n entries for it... StyleEntry* entry = new StyleEntry; config.setGroup("Misc"); entry->name = config.readEntry("Name"); entry->desc = config.readEntry("Comment", i18n("No description available.")); entry->configPage = config.readEntry("ConfigPage", TQString::null); // Check if this style should be shown config.setGroup("Desktop Entry"); entry->hidden = config.readBoolEntry("Hidden", false); // Insert the entry into our dictionary. styleEntries.insert(strWidgetStyle.lower(), entry); } // Obtain all style names TQStringList allStyles = TQStyleFactory::keys(); // Get translated names, remove all hidden style entries. TQStringList styles; StyleEntry* entry; for (TQStringList::iterator it = allStyles.begin(); it != allStyles.end(); it++) { TQString id = (*it).lower(); // Find the entry. if ( (entry = styleEntries.find(id)) != 0 ) { // Do not add hidden entries if (entry->hidden) continue; styles += entry->name; nameToStyleKey[entry->name] = id; } else { styles += (*it); //Fall back to the key (but in original case) nameToStyleKey[*it] = id; } } // Sort the style list, and add it to the combobox styles.sort(); cbStyle->insertStringList( styles ); // Find out which style is currently being used config.setGroup( "General" ); TQString defaultStyle = TDEStyle::defaultStyle(); TQString cfgStyle = config.readEntry( "widgetStyle", defaultStyle ); // Select the current style // Do not use cbStyle->listBox() as this may be NULL for some styles when // they use QPopupMenus for the drop-down list! // ##### Since Trolltech likes to seemingly copy & paste code, // TQStringList::findItem() doesn't have a Qt::StringComparisonMode field. // We roll our own (yuck) cfgStyle = cfgStyle.lower(); int item = 0; for( int i = 0; i < cbStyle->count(); i++ ) { TQString id = nameToStyleKey[cbStyle->text(i)]; item = i; if ( id == cfgStyle ) // ExactMatch break; else if ( id.contains( cfgStyle ) ) break; else if ( id.contains( TQApplication::style().className() ) ) break; item = 0; } cbStyle->setCurrentItem( item ); m_bStyleDirty = false; switchStyle( currentStyle() ); // make resets visible }
// 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 }
void KateSearch::replaceOne() { TQString replaceWith = m_replacement; if ( s.flags.regExp && s.flags.useBackRefs ) { // Replace each "\0"..."\9" with the corresponding capture, // "\n" and "\t" with newline and tab, // "\\" with "\", // and remove the "\" for any other sequence. TQRegExp br("\\\\(.)"); int pos = br.search( replaceWith ); int ncaps = m_re.numCaptures(); while ( pos >= 0 ) { TQString substitute; TQChar argument = TQString(br.cap(1)).at(0); if ( argument.isDigit() ) { // the second character is a digit, this is a backreference int ccap = argument.digitValue(); if (ccap <= ncaps ) { substitute = m_re.cap( ccap ); } else { kdDebug()<<"KateSearch::replaceOne(): you don't have "<<ccap<<" backreferences in regexp '"<<TQString(m_re.pattern())<<"'"<<endl; break; } } else if ( argument == 'n' ) { substitute = '\n'; } else if ( argument == 't' ) { substitute = '\t'; } else { // handle a validly escaped backslash, or an invalid escape. substitute = argument; } replaceWith.replace( pos, br.matchedLength(), substitute ); pos = br.search( replaceWith, pos + substitute.length() ); } } doc()->editStart(); doc()->removeText( s.cursor.line(), s.cursor.col(), s.cursor.line(), s.cursor.col() + s.matchedLength ); doc()->insertText( s.cursor.line(), s.cursor.col(), replaceWith ); doc()->editEnd(), replaces++; // if we inserted newlines, we better adjust. uint newlines = replaceWith.contains('\n'); if ( newlines ) { if ( ! s.flags.backward ) { s.cursor.setLine( s.cursor.line() + newlines ); s.cursor.setCol( replaceWith.length() - replaceWith.findRev('\n') ); } // selection? if ( s.flags.selected ) s.selEnd.setLine( s.selEnd.line() + newlines ); } // adjust selection endcursor if needed if( s.flags.selected && s.cursor.line() == s.selEnd.line() ) { s.selEnd.setCol(s.selEnd.col() + replaceWith.length() - s.matchedLength ); } // adjust wrap cursor if needed if( s.cursor.line() == s.wrappedEnd.line() && s.cursor.col() <= s.wrappedEnd.col()) { s.wrappedEnd.setCol(s.wrappedEnd.col() + replaceWith.length() - s.matchedLength ); } if( !s.flags.backward ) { s.cursor.setCol(s.cursor.col() + replaceWith.length()); } else if( s.cursor.col() > 0 ) { s.cursor.setCol(s.cursor.col() - 1); } else { s.cursor.setLine(s.cursor.line() - 1); if( s.cursor.line() >= 0 ) { s.cursor.setCol(doc()->lineLength( s.cursor.line() )); } } }
/* we just simplify the process. if we use KParts::BrowserExtension, we have to do lots extra work, adding so much classes. so just hack like following. grab useful code from TDEHTMLPopupGUIClient(tdehtml_ext.cpp), and change a little bit to fit our needs */ void EvaChatView::slotPopupMenu( const TQString & _url, const TQPoint & point ) { menu->clear(); bool isImage = false; bool hasSelection = TDEHTMLPart::hasSelection(); KURL url = KURL(_url); if(d) delete d; d = new MenuPrivateData; d->m_url = url; DOM::Element e = nodeUnderMouse(); if ( !e.isNull() && (e.elementId() == ID_IMG) ) { DOM::HTMLImageElement ie = static_cast<DOM::HTMLImageElement>(e); TQString src = ie.src().string(); d->m_imageURL = KURL(src); d->m_suggestedFilename = src.right(src.length() - src.findRev("/") -1); isImage=true; } TDEAction *action = 0L; if(hasSelection) { //action = new TDEAction( i18n( "&Copy Text" ), TDEShortcut("Ctrl+C"), this, SLOT( copy() ), // actionCollection(), "copy" ); //action = KStdAction::copy( browserExtension(), SLOT(copy()), actionCollection(), "copy"); //action->setText(i18n("&Copy Text")); //action->setEnabled(true); copyAction->plug(menu); // search text TQString selectedText = TDEHTMLPart::selectedText(); if ( selectedText.length()>18 ) { selectedText.truncate(15); selectedText+="..."; } #ifdef HAS_KONTQUEROR // Fill search provider entries TDEConfig config("kuriikwsfilterrc"); config.setGroup("General"); const TQString defaultEngine = config.readEntry("DefaultSearchEngine", "google"); const char keywordDelimiter = config.readNumEntry("KeywordDelimiter", ':'); // default search provider KService::Ptr service = KService::serviceByDesktopPath(TQString("searchproviders/%1.desktop").arg(defaultEngine)); // search provider icon TQPixmap icon; KURIFilterData data; TQStringList list; const TQString defaultSearchProviderPrefix = *(service->property("Keys").toStringList().begin()) + keywordDelimiter; data.setData( defaultSearchProviderPrefix + TQString("some keyword") ); list << "kurisearchfilter" << "kuriikwsfilter"; TQString name; if ( KURIFilter::self()->filterURI(data, list) ) { TQString iconPath = locate("cache", KMimeType::favIconForURL(data.uri()) + ".png"); if ( iconPath.isEmpty() ) icon = SmallIcon("edit-find"); else icon = TQPixmap( iconPath ); name = service->name(); } else { icon = SmallIcon("google"); name = "Google"; } action = new TDEAction( i18n( "Search '%1' at %2" ).arg( selectedText ).arg( name ), icon, 0, this, SLOT( searchProvider() ), actionCollection(), "searchProvider" ); action->plug(menu); // favorite search providers TQStringList favoriteEngines; favoriteEngines = config.readListEntry("FavoriteSearchEngines"); // for KDE 3.2 API compatibility if(favoriteEngines.isEmpty()) favoriteEngines << "google" << "google_groups" << "google_news" << "webster" << "dmoz" << "wikipedia"; if ( !favoriteEngines.isEmpty()) { TDEActionMenu* providerList = new TDEActionMenu( i18n( "Search '%1' At" ).arg( selectedText ), actionCollection(), "searchProviderList" ); bool hasSubMenus = false; TQStringList::ConstIterator it = favoriteEngines.begin(); for ( ; it != favoriteEngines.end(); ++it ) { if (*it==defaultEngine) continue; service = KService::serviceByDesktopPath(TQString("searchproviders/%1.desktop").arg(*it)); if (!service) continue; const TQString searchProviderPrefix = *(service->property("Keys").toStringList().begin()) + keywordDelimiter; data.setData( searchProviderPrefix + "some keyword" ); if ( KURIFilter::self()->filterURI(data, list) ) { TQString iconPath = locate("cache", KMimeType::favIconForURL(data.uri()) + ".png"); if ( iconPath.isEmpty() ) icon = SmallIcon("edit-find"); else icon = TQPixmap( iconPath ); name = service->name(); providerList->insert( new TDEAction( name, icon, 0, this, SLOT( searchProvider() ), actionCollection(), TQString( "searchProvider" + searchProviderPrefix ).latin1() ) ); hasSubMenus = true; } } if(hasSubMenus) providerList->plug(menu); } #endif // HAS_KONTQUEROR if ( selectedText.contains("://") && KURL(selectedText).isValid() ) { action = new TDEAction( i18n( "Open '%1'" ).arg( selectedText ), "window_new", 0, this, SLOT( openSelection() ), actionCollection(), "openSelection" ); action->plug(menu); } } if ( !url.isEmpty() ) { if (url.protocol() == "mailto") { action = new TDEAction( i18n( "Copy Email Address" ), 0, this, SLOT( slotCopyLinkLocation() ), actionCollection(), "copylinklocation" ); action->plug(menu); } else { action = new TDEAction( i18n( "Copy &Link Address" ), 0, this, SLOT( slotCopyLinkLocation() ), actionCollection(), "copylinklocation" ); action->plug(menu); } } if (isImage) { #ifndef QT_NO_MIMECLIPBOARD action = (new TDEAction( i18n( "Copy Image" ), 0, this, SLOT( slotCopyImage() ), actionCollection(), "copyimage" )); action->plug(menu); #endif action = new TDEAction( i18n( "Save Image As..." ), 0, this, SLOT( slotSaveImageAs() ), actionCollection(), "saveimageas" ); action->plug(menu); action = new TDEAction( i18n( "Save As Custom Smiley"), 0, this, SLOT( slotSaveAsCustomSmiley() ), actionCollection(), "saveascustomsmiley" ); action->plug(menu); } if(menu->count()) menu->popup(point); }