void QuickLauncher::addAppBeforeManually(TQString url, TQString sender) { if (sender.isNull()) { addApp(url, Append, true); } int pos = findApp(sender); if (pos < 0) { pos = Append; } DEBUGSTR << "QuickLauncher::addAppBefore(" << url << "," << sender << "): pos=" << pos << endl << flush; addApp(url, pos, true); }
void QuickLauncher::loadConfig() { DEBUGSTR << "QuickLauncher::loadConfig()" << endl << flush; //TDEConfig *c = config(); //c->setGroup("General"); setConserveSpace(m_settings->conserveSpace()); setDragEnabled(m_settings->dragEnabled()); /*DEBUGSTR << " IconDim="<<m_iconDim << endl << flush; DEBUGSTR << " ConserveSpace=" << (m_manager->conserveSpace()) << endl << flush; DEBUGSTR << " DragEnabled=" << isDragEnabled() << endl << flush;*/ TQStringList volatileButtons = m_settings->volatileButtons(); TQStringList urls = m_settings->buttons(); if (m_settings->showDesktopEnabled()) { if (!urls.contains("SPECIAL_BUTTON__SHOW_DESKTOP")) urls.prepend("SPECIAL_BUTTON__SHOW_DESKTOP"); } else { if (urls.contains("SPECIAL_BUTTON__SHOW_DESKTOP")) urls.remove("SPECIAL_BUTTON__SHOW_DESKTOP"); } kdDebug() << "GetButtons " << urls.join("/") << endl; TQStringList::Iterator iter(urls.begin()); int n = 0; while (iter != urls.end()) { TQString url = *iter; addApp(url, n, false); ++iter; ++n; } // Restore sticky state for (n=0; n<int(m_buttons->size()); ++n) { QuickButton* button = (*m_buttons)[n]; if (volatileButtons.contains(button->menuId()) == false) { button->setSticky(true); } button->setDynamicModeEnabled(m_settings->autoAdjustEnabled()); } m_popularity->readConfig(m_settings); m_popularity->setHistoryHorizon(m_settings->historyHorizon()/100.0); TQStringList serviceNames = m_settings->serviceNames(); TQValueList<int> insPos = m_settings->serviceInspos(); for (int n=std::min(serviceNames.size(),insPos.size())-1; n>=0; --n) { m_appOrdering[serviceNames[n]] = insPos[n]; } }
QList<QAction*> CustomDesktopMenu::contextualActions() { qDeleteAll(m_actions); m_actions.clear(); if (!menuconfig.isEmpty()) { QList<QMenu*> menuList; menuList.append(0); QMenu* curMenu = 0; QStringList configLines = menuconfig.split( "\n", QString::SkipEmptyParts ); foreach( QString cfgLine, configLines ) { if (!cfgLine.startsWith("#")) { if (cfgLine.startsWith("-")) { addSep(curMenu); } else if (cfgLine.endsWith(".desktop")) { addApp(curMenu, cfgLine); } else if (cfgLine.startsWith("[menu]")) { QStringList cfgParts = cfgLine.split( "\t", QString::SkipEmptyParts ); if (cfgParts.size() == 3) { curMenu = addMnu(curMenu, cfgParts[2], cfgParts[1]); menuList.append(curMenu); } else if (cfgParts.size() == 2) { curMenu = addMnu(curMenu, "", cfgParts[1]); menuList.append(curMenu); } } else if (cfgLine.startsWith("[end]")) { menuList.removeLast(); curMenu = menuList.last(); } else if (cfgLine == "{favorites}") { fillFavorites(curMenu); } else if (cfgLine.startsWith("{programs}")) { QStringList cfgParts = cfgLine.split( "\t", QString::SkipEmptyParts ); if (cfgParts.size() == 2) { fillPrograms(curMenu, cfgParts[1]); } else { fillPrograms(curMenu, "/"); } } else { QStringList cfgParts = cfgLine.split( "\t", QString::SkipEmptyParts ); if (cfgParts.size() == 3) { addCmd(curMenu, cfgParts[1], cfgParts[0], cfgParts[2]); } else if (cfgParts.size() == 2) { addCmd(curMenu, "", cfgParts[0], cfgParts[1]); } else { addItm(curMenu, "", cfgParts[0]); } } } } }
QDocker::QDocker(QWidget *parent) : QWidget(parent) { m_web = new QWebView(this); //m_web->setWindowFlags(Qt::FramelessWindowHint); m_appCount = 0; initUI(); addApp((LOCAL("xjb/公务卡系统3.4.0/GwCard.exe")),LOCAL("公务卡")); addApp(LOCAL("xjb/县区财政预算执行系统系统管理3.4.0/jy.exe"),LOCAL("系统管理")); addApp((LOCAL("xjb/县区财政预算总会计账务系统3.4.0.0/Account.exe")),LOCAL("会计账务")); addApp((LOCAL("xjb/县区行政事业单位账务系统3.4.0.0/DwAccount.exe")),LOCAL("单位账务")); addApp((LOCAL("xjb/县区预算执行动态监控及综合查询系统 3.2.0.0/GkQuery.exe")),LOCAL("动态监控")); addApp((LOCAL("xjb/县区预算执行系统3.4.0/GkCounty.exe")),LOCAL("预算执行")); addApp((LOCAL("xjb/银行支付系统3.4.0/BankClient.exe")),LOCAL("银行支付")); }
void ZAddAppDlg::procReg(QString FileRegistry) { QString id; QString name; QString ico; static int i=0; ZConfig confReg ( FileRegistry, false ); QStringList grouplist; confReg.getGroupsKeyList ( grouplist ); for ( QStringList::Iterator it = grouplist.begin(); it != grouplist.end(); ++it ) { name = confReg.readEntry ( *it, "Name", "" ); id = confReg.readEntry ( *it, "AppID", "" ); ico = confReg.readEntry ( *it, ICON_NAME, "" ); #ifdef NEW_PLATFORM if (ico=="") { ico = confReg.readEntry ( *it, "Icon", "" ); } #endif if (ico=="") { ico = confReg.readEntry ( *it, "BigIcon", "" ); } if ( (id!="")&&(name!="")) { AppRegistry app; app.setId(id); app.setName(name); #ifndef NEW_PLATFORM if ( ico.find(".g") == -1 && !QFile::exists(ico) ) #else if ( ico.find(".g") == -1 && ico.find(".k") == -1 &&!QFile::exists(ico) ) #endif { ico = confReg.readEntry ( *it, "Directory", "" ) + "/" + ico; } app.setIcon(ico); mapApp[ i ] = app; addApp(name, ico, i); ++i; } } }
void QuickLauncher::addApp(TQString url, bool manuallyAdded) { assert(m_buttons); TQString newButtonId = QuickURL(url).menuId(); if (m_appOrdering.find(newButtonId) == m_appOrdering.end()) { m_appOrdering[newButtonId] = m_appOrdering.size(); } uint appPos; for (appPos = 0; appPos < m_buttons->size(); ++appPos) { TQString buttonId = (*m_buttons)[appPos]->menuId(); if (m_appOrdering[buttonId] >= m_appOrdering[newButtonId]) { break; } } addApp(url, appPos, manuallyAdded); }
void Britepad::sortApps() { BritepadApp* oldList = appList; appList = nullptr; while (oldList) { BritepadApp* i = oldList; BritepadApp* highest = i; while (i) { if (strcasecmp(i->name(), highest->name()) > 0) { highest = i; } i = i->getNextApp(); } // remove from the list BritepadApp* p = highest->getPrevApp(); BritepadApp* n = highest->getNextApp(); if (p) { p->setNextApp(n); } else { oldList = n; } if (n) { n->setPrevApp(p); } addApp(highest); } }
void QDocker::addApp(QString &path, QString &title) { QPixmap &pix = QAppUtils::ref().getAppIcon(path); addApp(pix,title,path); }
void QuickLauncher::slotAdjustToCurrentPopularity() { // TODO: Shrink immediately if buttons->size() > maxItems kdDebug() << "Starting popularity update" << endl; PopularityStatistics* stats = m_popularity; int minItems = m_settings->autoAdjustMinItems(); int maxItems = m_settings->autoAdjustMaxItems(); static const double hysteresisFactor = 0.90; double minAddPopularity = 0; for (int n = 0; n < maxItems; ++n) { // All items with a popularity not less than 0.75 of the average // of the first maxItems apps are included in the list double belowAvgAllowed = 0.75; minAddPopularity += (belowAvgAllowed * stats->popularityByRank(n)) / maxItems; } double minDelPopularity = minAddPopularity * hysteresisFactor; std::map<TQString, QuickButton*> removeableApps; std::set<TQString> existingApps; int numApps = m_buttons->size(); for (int n = 0; n < int(m_buttons->size()); ++n) { QuickButton *button = (*m_buttons)[n]; if (((stats->popularityByRank(stats->rankByService(button->menuId())) < minDelPopularity) || m_settings->autoAdjustEnabled()==false) && (button->sticky() == false)) { removeableApps[button->menuId()] = button; --numApps; } existingApps.insert(button->menuId()); } for (int n = 0; (numApps < minItems && stats->popularityByRank(n) > 0) || (numApps < maxItems && stats->popularityByRank(n) > minAddPopularity); ++n) { TQString app = m_popularity->serviceByRank(n); if (existingApps.find(app) == existingApps.end()) { addApp(QuickURL(m_popularity->serviceByRank(n)).url(), false); kdDebug() << "Adding app " << app << endl; ++numApps; } else if (removeableApps.find(app) != removeableApps.end()) { removeableApps.erase(app); ++numApps; } } while (removeableApps.size() > 0) { removeApp(findApp(removeableApps.begin()->second), false); kdDebug() << "Removing app " << removeableApps.begin()->first << endl; removeableApps.erase(removeableApps.begin()->first); } kdDebug() << "done popularity update" << endl; m_settings->setAutoAdjustMinItems(minItems); m_settings->setAutoAdjustMaxItems(maxItems); // TODO: Think of something better than that: m_saveTimer->start(10000,true); }
void QuickLauncher::refreshContents() { int idim, d(dimension()); // make sure show desktop setting is honored TQStringList urls, volatileUrls; ButtonIter iter = m_buttons->begin(); while (iter != m_buttons->end()) { if ((*iter)->sticky() == false) { volatileUrls.append((*iter)->menuId()); } urls.append((*iter)->menuId()); ++iter; } if (m_settings->showDesktopEnabled()) { if (!urls.contains("SPECIAL_BUTTON__SHOW_DESKTOP")) { urls.prepend("SPECIAL_BUTTON__SHOW_DESKTOP"); addApp("SPECIAL_BUTTON__SHOW_DESKTOP", 0, true); } } else { if (urls.contains("SPECIAL_BUTTON__SHOW_DESKTOP")) { urls.remove("SPECIAL_BUTTON__SHOW_DESKTOP"); removeApp("SPECIAL_BUTTON__SHOW_DESKTOP", true); } } // determine button size if (m_settings->iconDim() == SIZE_AUTO) { if (d < 18) { idim = std::min(16,d); } else if (d < 64) { idim = 16; } else if (d < 80) { idim = 20; } else if (d < 122) { idim = 24; } else { idim = 28; } } else { idim = std::min(m_settings->iconDim(), d - std::max((d/8)-1, 0) * 2); } m_space = std::max((idim/8)-1, 0); m_border = m_space; m_buttonSize = TQSize(idim, idim); m_manager->setOrientation(orientation()); m_manager->setNumItems(m_buttons->size()); m_manager->setFrameSize(size()); m_manager->setItemSize(m_buttonSize); m_manager->setSpaceSize(TQSize(m_space, m_space)); m_manager->setBorderSize(TQSize(m_border, m_border)); if (!m_refreshEnabled) { m_needsRefresh=true; return; } if (!m_manager->isValid()) { kdDebug()<<endl<<"******WARNING****** Layout is invalid."<< endl << flush; m_manager->dump(); return; } unsigned index; TQPoint pos; setUpdatesEnabled(false); m_buttons->setUpdatesEnabled(false); for (index = 0; index < m_buttons->size(); index++) { pos = m_manager->pos(index); QuickButton *button = (*m_buttons)[index]; button->resize(m_manager->itemSize()); button->move(pos.x(), pos.y()); button->setDragging(false); button->setEnableDrag(isDragEnabled()); button->setDynamicModeEnabled(m_settings->autoAdjustEnabled()); } if (m_newButtons) { m_newButtons->setDragging(false); } if (m_dragButtons) { m_dragButtons->setDragging(true); } m_buttons->show(); setUpdatesEnabled(true); update(); m_buttons->setUpdatesEnabled(true); updateGeometry(); emit updateLayout(); updateStickyHighlightLayer(); }