void KonqSideBarWebModule::setTitle(const QString& title) { kDebug() << title; if (!title.isEmpty()) { emit setCaption(title); if (title != configGroup().readEntry("Name", QString())) { configGroup().writeEntry("Name", title); } } }
void KonqSideBarWebModule::setAutoReload() { KDialog dlg( 0 ); dlg.setModal( true ); dlg.setCaption( i18nc("@title:window", "Set Refresh Timeout (0 disables)" ) ); dlg.setButtons( KDialog::Ok | KDialog::Cancel ); KHBox *hbox = new KHBox( &dlg ); dlg.setMainWidget( hbox ); KIntNumInput *mins = new KIntNumInput(hbox); mins->setRange(0, 120); mins->setSuffix( ki18np(" minute", " minutes") ); KIntNumInput *secs = new KIntNumInput(hbox); secs->setRange(0, 59); secs->setSuffix( ki18np(" second", " seconds") ); if( reloadTimeout > 0 ) { int seconds = reloadTimeout / 1000; secs->setValue( seconds % 60 ); mins->setValue( ( seconds - secs->value() ) / 60 ); } if( dlg.exec() == KDialog::Accepted ) { int msec = ( mins->value() * 60 + secs->value() ) * 1000; reloadTimeout = msec; configGroup().writeEntry("Reload", reloadTimeout); reload(); } }
void KonqSideBarWebModule::loadFavicon() { QString icon = KMimeType::favIconForUrl(_url); if (icon.isEmpty()) { org::kde::FavIcon favicon("org.kde.kded", "/modules/favicons", QDBusConnection::sessionBus()); favicon.downloadHostIcon(_url.url()); icon = KMimeType::favIconForUrl(_url); } if (!icon.isEmpty()) { emit setIcon(icon); if (icon != configGroup().readEntry("Icon", QString())) { configGroup().writeEntry("Icon", icon); } } }
GaduAccount::GaduAccount( Kopete::Protocol* parent, const QString& accountID,const char* name ) : Kopete::PasswordedAccount( parent, accountID, 0, name ) { QHostAddress ip; p = new GaduAccountPrivate; p->pingTimer_ = NULL; p->saveListDialog = NULL; p->loadListDialog = NULL; p->forFriends = false; p->textcodec_ = QTextCodec::codecForName( "CP1250" ); p->session_ = new GaduSession( this, "GaduSession" ); KGlobal::config()->setGroup( "Gadu" ); setMyself( new GaduContact( accountId().toInt(), accountId(), this, Kopete::ContactList::self()->myself() ) ); p->status = GaduProtocol::protocol()->convertStatus( GG_STATUS_NOT_AVAIL ); p->lastDescription = QString::null; for ( unsigned int i = 0; i < NUM_SERVERS ; i++ ) { ip.setAddress( QString( servers_ip[i] ) ); p->servers.append( htonl( ip.toIPv4Address() ) ); kdDebug( 14100 ) << "adding IP: " << p->servers[ i ] << " to cache" << endl; } p->currentServer = -1; p->serverIP = 0; // initialize KGaduLogin structure to default values p->loginInfo.uin = accountId().toInt(); p->loginInfo.useTls = false; p->loginInfo.status = GG_STATUS_AVAIL; p->loginInfo.server = 0; p->loginInfo.client_port = 0; p->loginInfo.client_addr = 0; p->pingTimer_ = new QTimer( this ); p->exportTimer_ = new QTimer( this ); p->exportUserlist = false; p->gaduDcc_ = NULL; p->config = configGroup(); p->ignoreAnons = ignoreAnons(); p->forFriends = loadFriendsMode(); initConnections(); initActions(); QString nick = p->config->readEntry( QString::fromAscii( "nickName" ) ); if ( !nick.isNull() ) { myself()->setProperty( Kopete::Global::Properties::self()->nickName(), nick ); } else { myself()->setProperty( Kopete::Global::Properties::self()->nickName(), accountId() ); p->config->writeEntry( QString::fromAscii( "nickName" ), accountId() ); } }
void BackupDialog::backup() { QDir dir; // Compute a default file name & path (eg. "Baskets_2007-01-31.tar.gz"): KConfig *config = KGlobal::config().data(); KConfigGroup configGroup(config, "Backups"); QString folder = configGroup.readEntry("lastFolder", QDir::homePath()) + "/"; QString fileName = i18np("Backup filename (without extension), %1 is the date", "Baskets_%1", QDate::currentDate().toString(Qt::ISODate)); QString url = folder + fileName; // Ask a file name & path to the user: QString filter = "*.tar.gz|" + i18n("Tar Archives Compressed by Gzip") + "\n*|" + i18n("All Files"); QString destination = url; for (bool askAgain = true; askAgain;) { // Ask: destination = KFileDialog::getSaveFileName(destination, filter, 0, i18n("Backup Baskets")); // User canceled? if (destination.isEmpty()) return; // File already existing? Ask for overriding: if (dir.exists(destination)) { int result = KMessageBox::questionYesNoCancel( 0, "<qt>" + i18n("The file <b>%1</b> already exists. Do you really want to override it?", KUrl(destination).fileName()), i18n("Override File?"), KGuiItem(i18n("&Override"), "document-save") ); if (result == KMessageBox::Cancel) return; else if (result == KMessageBox::Yes) askAgain = false; } else askAgain = false; } KProgressDialog dialog(0, i18n("Backup Baskets"), i18n("Backing up baskets. Please wait...")); dialog.setModal(true); dialog.setAllowCancel(false); dialog.setAutoClose(true); dialog.show(); QProgressBar *progress = dialog.progressBar(); progress->setRange(0, 0/*Busy/Undefined*/); progress->setValue(0); progress->setTextVisible(false); BackupThread thread(destination, Global::savesFolder()); thread.start(); while (thread.isRunning()) { progress->setValue(progress->value() + 1); // Or else, the animation is not played! kapp->processEvents(); usleep(300); // Not too long because if the backup process is finished, we wait for nothing } Settings::setLastBackup(QDate::currentDate()); Settings::saveConfig(); populateLastBackup(); }
void OnlineSearchQueryFormGeneral::loadState() { KConfigGroup configGroup(config, configGroupName); for (QMap<QString, KLineEdit *>::ConstIterator it = queryFields.constBegin(); it != queryFields.constEnd(); ++it) { it.value()->setText(configGroup.readEntry(it.key(), QString())); } numResultsField->setValue(configGroup.readEntry(QStringLiteral("numResults"), 10)); }
void OnlineSearchQueryFormGeneral::saveState() { KConfigGroup configGroup(config, configGroupName); for (QMap<QString, KLineEdit *>::ConstIterator it = queryFields.constBegin(); it != queryFields.constEnd(); ++it) { configGroup.writeEntry(it.key(), it.value()->text()); } configGroup.writeEntry(QStringLiteral("numResults"), numResultsField->value()); config->sync(); }
void FileExporterPDF::reloadConfig() { KSharedConfigPtr config = KSharedConfig::openConfig(QStringLiteral("kbibtexrc")); KConfigGroup configGroup(config, QStringLiteral("FileExporterPDFPS")); m_babelLanguage = configGroup.readEntry(keyBabelLanguage, defaultBabelLanguage); m_bibliographyStyle = configGroup.readEntry(keyBibliographyStyle, defaultBibliographyStyle); KConfigGroup configGroupGeneral(config, QStringLiteral("General")); m_paperSize = configGroupGeneral.readEntry(keyPaperSize, defaultPaperSize); m_font = configGroupGeneral.readEntry(keyFont, defaultFont); }
void IconView::contextMenuEvent( QContextMenuEvent* event ) { QModelIndex index = indexAt( event->pos() ); if ( !index.isValid() || m_selectionModel->selectedIndexes().isEmpty() ) { QMenu* menu = new QMenu; menu->addAction( m_actionCollection.action( "new_menu" ) ); menu->addSeparator(); menu->addAction( m_actionCollection.action( "undo" ) ); menu->addAction( m_actionCollection.action( "paste" ) ); menu->addSeparator(); menu->addAction( m_actionCollection.action( "refresh" ) ); menu->addSeparator(); menu->addAction( m_actionCollection.action( "wallpaper" ) ); if ( event->reason() == QContextMenuEvent::Keyboard ) menu->exec( QPoint( 0, 0 ) ); else menu->exec( event->pos() ); delete menu; return; } KFileItemList items; foreach ( const QModelIndex &index, m_selectionModel->selectedIndexes() ) { KFileItem item = m_model->itemForIndex( m_proxyModel->mapToSource( index ) ); if ( !item.isNull() ) items.append( item ); } QAction* pasteTo = m_actionCollection.action( "pasteto" ); if ( pasteTo ) { pasteTo->setEnabled( m_actionCollection.action( "paste" )->isEnabled() ); pasteTo->setText( m_actionCollection.action( "paste" )->text() ); } QList<QAction*> editActions; editActions.append( m_actionCollection.action( "rename" ) ); editActions.append( m_actionCollection.action( "trash" ) ); KConfigGroup configGroup( KGlobal::config(), "KDE" ); bool showDeleteCommand = configGroup.readEntry( "ShowDeleteCommand", false ); if ( showDeleteCommand ) editActions.append( m_actionCollection.action( "del" ) ); KParts::BrowserExtension::ActionGroupMap actionGroups; actionGroups.insert( "editactions", editActions ); KParts::BrowserExtension::PopupFlags flags = KParts::BrowserExtension::ShowProperties; flags |= KParts::BrowserExtension::ShowUrlOperations; KonqPopupMenu* contextMenu = new KonqPopupMenu( items, KUrl(QDir::homePath()), m_actionCollection, m_newMenu, KonqPopupMenu::ShowNewWindow, flags, QApplication::desktop(), KBookmarkManager::userBookmarksManager(), actionGroups ); contextMenu->exec( event->pos() ); delete contextMenu; }
void K3bIsoImageWritingDialog::init() { if( !d->imageForced ) { // when opening the dialog first the default settings are loaded and afterwards we set the // last written image because that's what most users want KConfig* c = k3bcore->config(); c->setGroup( configGroup() ); QString image = c->readPathEntry( "last written image" ); if( QFile::exists( image ) ) m_editImagePath->setURL( image ); } }
JabberTransport::JabberTransport (JabberAccount * parentAccount, const XMPP::RosterItem & item, const QString& gateway_type) : Kopete::Account ( parentAccount->protocol(), parentAccount->accountId()+"/"+ item.jid().bare() ) { m_status=Creating; m_account = parentAccount; m_account->addTransport( this,item.jid().bare() ); JabberContact *myContact = m_account->contactPool()->addContact ( item , Kopete::ContactList::self()->myself(), false ); setMyself( myContact ); kdDebug(JABBER_DEBUG_GLOBAL) << k_funcinfo << accountId() <<" transport created: myself: " << myContact << endl; setColor( account()->color() ); #if KOPETE_IS_VERSION(0,11,51) //setCustomIcon is new in kopete 0.12 QString cIcon; if(gateway_type=="msn") cIcon="jabber_gateway_msn"; else if(gateway_type=="icq") cIcon="jabber_gateway_icq"; else if(gateway_type=="aim") cIcon="jabber_gateway_aim"; else if(gateway_type=="yahoo") cIcon="jabber_gateway_yahoo"; else if(gateway_type=="sms") cIcon="jabber_gateway_sms"; else if(gateway_type=="gadu-gadu") cIcon="jabber_gateway_gadu"; else if(gateway_type=="smtp") cIcon="jabber_gateway_smtp"; else if(gateway_type=="http-ws") cIcon="jabber_gateway_http-ws"; else if(gateway_type=="qq") cIcon="jabber_gateway_qq"; else if(gateway_type=="tlen") cIcon="jabber_gateway_tlen"; else if(gateway_type=="irc") //NOTE: this is not official cIcon="irc_protocol"; if( !cIcon.isEmpty() ) setCustomIcon( cIcon ); #endif configGroup()->writeEntry("GatewayJID" , item.jid().full() ); QTimer::singleShot(0, this, SLOT(eatContacts())); m_status=Normal; }
void K3b::ImageWritingDialog::init() { KConfigGroup c( KGlobal::config(), configGroup() ); if( !d->imageForced ) { // when opening the dialog first the default settings are loaded and afterwards we set the // last written image because that's what most users want QString image = c.readPathEntry( "last written image", QString() ); if( QFile::exists( image ) ) d->editImagePath->setUrl( image ); d->comboRecentImages->clear(); } d->comboRecentImages->addItems( c.readPathEntry( "recent images", QStringList() ) ); }
K3b::ImageWritingDialog::~ImageWritingDialog() { d->md5Job->cancel(); KConfigGroup c( KGlobal::config(), configGroup() ); QStringList recentImages; // do not store more than 10 recent images for ( int i = 0; i < d->comboRecentImages->count() && recentImages.count() < 10; ++i ) { QString image = d->comboRecentImages->itemText( i ); if ( !recentImages.contains( image ) ) recentImages += image; } c.writePathEntry( "recent images", recentImages ); delete d; }
void KCMLookandFeel::setColors(const QString &scheme, const QString &colorFile) { if (scheme.isEmpty() && colorFile.isEmpty()) { return; } KConfigGroup configGroup(&m_config, "General"); configGroup.writeEntry("ColorScheme", scheme); configGroup.sync(); KSharedConfigPtr conf = KSharedConfig::openConfig(colorFile); foreach (const QString &grp, conf->groupList()) { KConfigGroup cg(conf, grp); KConfigGroup cg2(&m_config, grp); cg.copyTo(&cg2); } }
virtual void notificationEvent(int eventId) { if (eventId == MenuLineEdit::MenuLineConfigurationChangedEvent) { /// load setting limitKeyboardTabStops KSharedConfigPtr config(KSharedConfig::openConfig(QStringLiteral("kbibtexrc"))); static QString const configGroupName = QStringLiteral("User Interface"); KConfigGroup configGroup(config, configGroupName); const bool limitKeyboardTabStops = configGroup.readEntry(MenuLineEdit::keyLimitKeyboardTabStops, false); /// check each widget inside MenuLineEdit for (int i = hLayout->count() - 1; i >= 0; --i) { QWidget *w = hLayout->itemAt(i)->widget(); if (w != NULL && w != m_singleLineEditText && w != m_multiLineEditText) { /// for all widgets except the main editing widget: change tab focus policy w->setFocusPolicy(limitKeyboardTabStops ? Qt::ClickFocus : Qt::StrongFocus); } } } }
void ConfigHelper::ReadLoginData(Ui::LoginWidget *login_ui) { QString value, configKey; QString server, username, password; QString configGroup("InstantMessagingLogin"); configKey = QString("username"); username = QString(framework_->GetDefaultConfigPtr()->GetSetting<std::string>(configGroup.toStdString(), configKey.toStdString()).c_str()); configKey = QString("server"); server = QString(framework_->GetDefaultConfigPtr()->GetSetting<std::string>(configGroup.toStdString(), configKey.toStdString()).c_str()); configKey = QString("password"); password = QString(framework_->GetDefaultConfigPtr()->GetSetting<std::string>(configGroup.toStdString(), configKey.toStdString()).c_str()); if (!username.isNull() && !username.isEmpty()) login_ui->usernameLineEdit->setText(username); if (!server.isNull() && !server.isEmpty()) login_ui->serverLineEdit->setText(server); if (!password.isNull() && !password.isEmpty()) login_ui->passwordLineEdit->setText(password); }
// implemented upstream - user apps void ColorScheme::writeColorEntry(KConfig& config , const QString& colorName, const ColorEntry& entry , const RandomizationRange& random) const { KConfigGroup configGroup(&config,colorName); configGroup.writeEntry("Color",entry.color); configGroup.writeEntry("Transparency",(bool)entry.transparent); if (entry.fontWeight != ColorEntry::UseCurrentFormat) { configGroup.writeEntry("Bold",entry.fontWeight == ColorEntry::Bold); } // record randomization if this color has randomization or // if one of the keys already exists if ( !random.isNull() || configGroup.hasKey("MaxRandomHue") ) { configGroup.writeEntry("MaxRandomHue",(int)random.hue); configGroup.writeEntry("MaxRandomValue",(int)random.value); configGroup.writeEntry("MaxRandomSaturation",(int)random.saturation); } }
FieldLineEditPrivate(KBibTeX::TypeFlag ptf, KBibTeX::TypeFlags tf, FieldLineEdit *p) : parent(p), preferredTypeFlag(ptf), typeFlags(tf), config(KSharedConfig::openConfig(QStringLiteral("kbibtexrc"))), configGroupNameGeneral(QStringLiteral("General")), file(NULL) { menuTypes = new QMenu(parent); menuTypesSignalMapper = new QSignalMapper(parent); setupMenu(); connect(menuTypesSignalMapper, static_cast<void(QSignalMapper::*)(int)>(&QSignalMapper::mapped), parent, &FieldLineEdit::slotTypeChanged); buttonOpenUrl = new QPushButton(QIcon::fromTheme(QStringLiteral("document-open-remote")), QStringLiteral(""), parent); buttonOpenUrl->setVisible(false); buttonOpenUrl->setProperty("isConst", true); parent->appendWidget(buttonOpenUrl); connect(buttonOpenUrl, &QPushButton::clicked, parent, &FieldLineEdit::slotOpenUrl); connect(p, &FieldLineEdit::textChanged, p, &FieldLineEdit::slotTextChanged); Value value; typeFlag = determineTypeFlag(value, preferredTypeFlag, typeFlags); updateGUI(typeFlag); KConfigGroup configGroup(config, configGroupNameGeneral); personNameFormatting = configGroup.readEntry(Preferences::keyPersonNameFormatting, Preferences::defaultPersonNameFormatting); }
JabberTransport::JabberTransport( JabberAccount * parentAccount, const QString & _accountId ) : Kopete::Account ( parentAccount->protocol(), _accountId ) { m_status=Creating; m_account = parentAccount; const QString contactJID_s = configGroup()->readEntry("GatewayJID"); if(contactJID_s.isEmpty()) { kdError(JABBER_DEBUG_GLOBAL) << k_funcinfo << _accountId <<": GatewayJID is empty: MISCONFIGURATION (have you used Kopete 0.12 beta ?)" << endl; } XMPP::Jid contactJID= XMPP::Jid( contactJID_s ); m_account->addTransport( this, contactJID.bare() ); JabberContact *myContact = m_account->contactPool()->addContact ( contactJID , Kopete::ContactList::self()->myself(), false ); setMyself( myContact ); kdDebug(JABBER_DEBUG_GLOBAL) << k_funcinfo << accountId() <<" transport created: myself: " << myContact << endl; m_status=Normal; }
void K3bIsoImageWritingDialog::slotStartClicked() { if( !d->isIsoImage ) { if( KMessageBox::warningContinueCancel( this, i18n("The image you selected is not a valid ISO9660 image. " "Are you sure you want to burn it anyway? " "(There may exist other valid image types that are not detected by K3b but " "will work fine.)"), i18n("Burn") ) == KMessageBox::Cancel ) return; } K3bIso9660 isoFs( imagePath() ); if( isoFs.open() ) { if( K3b::imageFilesize( KURL::fromPathOrURL( imagePath() ) ) < (KIO::filesize_t)(isoFs.primaryDescriptor().volumeSpaceSize*2048) ) { if( KMessageBox::questionYesNo( this, i18n("<p>This image has an invalid file size." "If it has been downloaded make sure the download is complete." "<p>Only continue if you know what you are doing."), i18n("Warning"), i18n("Continue"), i18n("Cancel") ) == KMessageBox::No ) return; } } m_md5Job->cancel(); // save the path KConfig* c = k3bcore->config(); c->setGroup( configGroup() ); if( c->readPathEntry( "last written image" ).isEmpty() ) c->writePathEntry( "last written image", imagePath() ); // create a progresswidget K3bBurnProgressDialog dlg( kapp->mainWidget(), "burnProgress", true ); // create the job K3bIso9660ImageWritingJob* job = new K3bIso9660ImageWritingJob( &dlg ); job->setBurnDevice( m_writerSelectionWidget->writerDevice() ); job->setSpeed( m_writerSelectionWidget->writerSpeed() ); job->setSimulate( m_checkDummy->isChecked() ); job->setWritingMode( m_writingModeWidget->writingMode() ); job->setVerifyData( m_checkVerify->isChecked() ); job->setCopies( m_checkDummy->isChecked() ? 1 : m_spinCopies->value() ); job->setImagePath( imagePath() ); // HACK (needed since if the medium is forced the stupid K3bIso9660ImageWritingJob defaults to cd writing) job->setWritingApp( K3b::GROWISOFS ); if( !exitLoopOnHide() ) hide(); dlg.startJob( job ); delete job; if( KConfigGroup( k3bcore->config(), "General Options" ).readBoolEntry( "keep action dialogs open", false ) && !exitLoopOnHide() ) show(); else close(); }
void loadState() { KConfigGroup configGroup(config, configGroupName); QStringList keywordList = configGroup.readEntry(KeywordListEdit::keyGlobalKeywordList, QStringList()); stringListModel.setStringList(keywordList); }
void saveState() { KConfigGroup configGroup(config, configGroupName); configGroup.writeEntry(KeywordListEdit::keyGlobalKeywordList, stringListModel.stringList()); config->sync(); }
void PopupView::showContextMenu(QWidget *widget, const QPoint &screenPos, const QList<QModelIndex> &indexes) { Q_UNUSED(widget) // contextMenuRequest is only called from the icon view, which is created in init() // which mean m_model should always be initialized Q_ASSERT(m_model); if (indexes.isEmpty()) { return; } if (m_actionCollection.isEmpty()) { createActions(); } KFileItemList items; bool hasRemoteFiles = false; bool isTrashLink = false; foreach (const QModelIndex &index, m_selectionModel->selectedIndexes()) { KFileItem item = m_model->itemForIndex(index); if (!item.isNull()) { hasRemoteFiles |= item.localPath().isEmpty(); items.append(item); } } // Check if we're showing the menu for the trash link if (items.count() == 1 && items.at(0).isDesktopFile()) { KDesktopFile file(items.at(0).localPath()); if (file.readType() == "Link" && file.readUrl() == "trash:/") { isTrashLink = true; } } QAction *pasteTo = m_actionCollection.action("pasteto"); if (pasteTo) { if (QAction *paste = m_actionCollection.action("paste")) { pasteTo->setEnabled(paste->isEnabled()); pasteTo->setText(paste->text()); } } QList<QAction*> editActions; editActions.append(m_actionCollection.action("rename")); KConfigGroup configGroup(KGlobal::config(), "KDE"); bool showDeleteCommand = configGroup.readEntry("ShowDeleteCommand", false); // Don't add the "Move to Trash" action if we're showing the menu for the trash link if (!isTrashLink) { if (!hasRemoteFiles) { editActions.append(m_actionCollection.action("trash")); } else { showDeleteCommand = true; } } if (showDeleteCommand) { editActions.append(m_actionCollection.action("del")); } KParts::BrowserExtension::ActionGroupMap actionGroups; actionGroups.insert("editactions", editActions); KParts::BrowserExtension::PopupFlags flags = KParts::BrowserExtension::ShowProperties; flags |= KParts::BrowserExtension::ShowUrlOperations; // m_newMenu can be NULL here but KonqPopupMenu does handle this. KonqPopupMenu *contextMenu = new KonqPopupMenu(items, m_url, m_actionCollection, m_newMenu, KonqPopupMenu::ShowNewWindow, flags, QApplication::desktop(), KBookmarkManager::userBookmarksManager(), actionGroups); connect(contextMenu->fileItemActions(), SIGNAL(openWithDialogAboutToBeShown()), this, SLOT(openWithDialogAboutToShow())); m_showingMenu = true; contextMenu->exec(screenPos); delete contextMenu; m_showingMenu = false; if (pasteTo) { pasteTo->setEnabled(false); } if (m_delayedClose) { m_delayedClose = false; closeThisAndParentPopup(); } }
LaconicaAccount::LaconicaAccount(LaconicaMicroBlog* parent, const QString &alias) : TwitterApiAccount(parent, alias), d(new Private) { d->changeExclamationMarkToText = configGroup()->readEntry("changeExclamationMarkText", QString('#')); d->isChangeExclamationMark = configGroup()->readEntry("isChangeExclamationMark", false); }
void LaconicaAccount::writeConfig() { configGroup()->writeEntry("isChangeExclamationMark", d->isChangeExclamationMark); configGroup()->writeEntry("changeExclamationMarkText", d->changeExclamationMarkToText); TwitterApiAccount::writeConfig(); }
void TabView::readViewConfig(KConfig* c, QString prefix, QString postfix, bool withOptions) { if (0) qDebug("%s::readConfig(%s%s)", name(), prefix.ascii(), postfix.ascii()); KConfigGroup* g = configGroup(c, prefix, postfix); _mainSplitter->setSizes(g->readIntListEntry("MainSizes")); _leftSplitter->setSizes(g->readIntListEntry("LeftSizes")); _bottomSplitter->setSizes(g->readIntListEntry("BottomSizes")); QString activeT = g->readEntry("ActiveTop", "CallerView"); QString activeB = g->readEntry("ActiveBottom", "CalleeView"); QString activeL = g->readEntry("ActiveLeft", ""); QString activeR = g->readEntry("ActiveRight", ""); QStringList topTabs = g->readListEntry("TopTabs"); QStringList bottomTabs = g->readListEntry("BottomTabs"); QStringList leftTabs = g->readListEntry("LeftTabs"); QStringList rightTabs = g->readListEntry("RightTabs"); if (topTabs.isEmpty() && bottomTabs.isEmpty() && rightTabs.isEmpty() && leftTabs.isEmpty()) { // no tabs visible ?! Reset to default topTabs << "CostTypeView" << "CallerView" << "AllCallerView" << "CalleeMapView" << "SourceView"; bottomTabs << "PartView" << "CalleeView" << "CallGraphView" << "AllCalleeView" << "CallerMapView" << "InstrView"; } TraceItemView *activeTop = 0, *activeBottom = 0; TraceItemView *activeLeft = 0, *activeRight = 0; moveTab(0, TraceItemView::Top, true); TraceItemView *v; QPtrListIterator<TraceItemView> it( _tabs ); while ( (v=it.current()) != 0) { ++it; QString n = QString(v->widget()->name()); if (topTabs.contains(n)) { moveTab(v->widget(), TraceItemView::Top); if (n == activeT) activeTop = v; } else if (bottomTabs.contains(n)) { moveTab(v->widget(), TraceItemView::Bottom); if (n == activeB) activeBottom = v; } else if (leftTabs.contains(n)) { moveTab(v->widget(), TraceItemView::Left); if (n == activeL) activeLeft = v; } else if (rightTabs.contains(n)) { moveTab(v->widget(), TraceItemView::Right); if (n == activeR) activeRight = v; } else moveTab(v->widget(), Hidden); if (withOptions) v->readViewConfig(c, QString("%1-%2") .arg(prefix).arg(v->widget()->name()), postfix, true); } if (activeTop) _topTW->showPage(activeTop->widget()); if (activeBottom)_bottomTW->showPage(activeBottom->widget()); if (activeLeft) _leftTW->showPage(activeLeft->widget()); if (activeRight) _rightTW->showPage(activeRight->widget()); QString activeType = g->readEntry("ActiveItemType", ""); QString activeName = g->readEntry("ActiveItemName", ""); QString selectedType = g->readEntry("SelectedItemType", ""); QString selectedName = g->readEntry("SelectedItemName", ""); delete g; if (!_data) return; if (withOptions) { // restore active item TraceItem::CostType t = TraceItem::costType(activeType); if (t==TraceItem::NoCostType) t = TraceItem::Function; TraceCost* activeItem = _data->search(t, activeName, _costType); if (!activeItem) return; activate(activeItem); // restore selected item t = TraceItem::costType(selectedType); if (t==TraceItem::NoCostType) t = TraceItem::Function; TraceCost* selectedItem = _data->search(t, selectedName, _costType, activeItem); if (selectedItem) select(selectedItem); } updateView(); }
void BackupDialog::restore() { // Get last backup folder: KConfig *config = KGlobal::config().data(); KConfigGroup configGroup(config, "Backups"); QString folder = configGroup.readEntry("lastFolder", QDir::homePath()) + "/"; // Ask a file name to the user: QString filter = "*.tar.gz|" + i18n("Tar Archives Compressed by Gzip") + "\n*|" + i18n("All Files"); QString path = KFileDialog::getOpenFileName(folder, filter, this, i18n("Open Basket Archive")); if (path.isEmpty()) // User has canceled return; // Before replacing the basket data folder with the backup content, we safely backup the current baskets to the home folder. // So if the backup is corrupted or something goes wrong while restoring (power cut...) the user will be able to restore the old working data: QString safetyPath = Backup::newSafetyFolder(); FormatImporter copier; copier.moveFolder(Global::savesFolder(), safetyPath); // Add the README file for user to cancel a bad restoration: QString readmePath = safetyPath + i18n("README.txt"); QFile file(readmePath); if (file.open(QIODevice::WriteOnly)) { QTextStream stream(&file); stream << i18n("This is a safety copy of your baskets like they were before you started to restore the backup %1.", KUrl(path).fileName()) + "\n\n" << i18n("If the restoration was a success and you restored what you wanted to restore, you can remove this folder.") + "\n\n" << i18n("If something went wrong during the restoration process, you can re-use this folder to store your baskets and nothing will be lost.") + "\n\n" << i18n("Choose \"Basket\" -> \"Backup & Restore...\" -> \"Use Another Existing Folder...\" and select that folder.") + "\n"; file.close(); } QString message = "<p><nobr>" + i18n("Restoring <b>%1</b>. Please wait...", KUrl(path).fileName()) + "</nobr></p><p>" + i18n("If something goes wrong during the restoration process, read the file <b>%1</b>.", readmePath); KProgressDialog *dialog = new KProgressDialog(0, i18n("Restore Baskets"), message); dialog->setModal(/*modal=*/true); dialog->setAllowCancel(false); dialog->setAutoClose(true); dialog->show(); QProgressBar *progress = dialog->progressBar(); progress->setRange(0, 0/*Busy/Undefined*/); progress->setValue(0); progress->setTextVisible(false); // Uncompress: RestoreThread thread(path, Global::savesFolder()); thread.start(); while (thread.isRunning()) { progress->setValue(progress->value() + 1); // Or else, the animation is not played! kapp->processEvents(); usleep(300); // Not too long because if the restore process is finished, we wait for nothing } dialog->hide(); // The restore is finished, do not continue to show it while telling the user the application is going to be restarted delete dialog; // If we only hidden it, it reappeared just after having restored a small backup... Very strange. dialog = 0; // This was annoying since it is modal and the "BasKet Note Pads is going to be restarted" message was not reachable. //kapp->processEvents(); // Check for errors: if (!thread.success()) { // Restore the old baskets: QDir dir; dir.remove(readmePath); copier.moveFolder(safetyPath, Global::savesFolder()); // Tell the user: KMessageBox::error(0, i18n("This archive is either not a backup of baskets or is corrupted. It cannot be imported. Your old baskets have been preserved instead."), i18n("Restore Error")); return; } // Note: The safety backup is not removed now because the code can has been wrong, somehow, or the user perhapse restored an older backup by error... // The restore process will not be called very often (it is possible it will only be called once or twice arround the world during the next years). // So it is rare enough to force the user to remove the safety folder, but keep him in control and let him safely recover from restoration errors. Backup::setFolderAndRestart(Global::savesFolder()/*No change*/, i18n("Your backup has been successfuly restored to <b>%1</b>. %2 is going to be restarted to take this change into account.")); }
void K3b::ImageWritingDialog::slotStartClicked() { d->md5Job->cancel(); // save the path KConfigGroup grp( KGlobal::config(), configGroup() ); grp.writePathEntry( "last written image", d->imagePath() ); if( d->imageFile.isEmpty() ) d->imageFile = d->imagePath(); if( d->tocFile.isEmpty() ) d->tocFile = d->imagePath(); // create a progresswidget K3b::BurnProgressDialog dlg( parentWidget() ); // create the job K3b::BurnJob* job = 0; switch( d->currentImageType() ) { case IMAGE_CDRECORD_CLONE: { K3b::CloneJob* _job = new K3b::CloneJob( &dlg, this ); _job->setWriterDevice( d->writerSelectionWidget->writerDevice() ); _job->setImagePath( d->imageFile ); _job->setSimulate( d->checkDummy->isChecked() ); _job->setWriteSpeed( d->writerSelectionWidget->writerSpeed() ); _job->setCopies( d->checkDummy->isChecked() ? 1 : d->spinCopies->value() ); _job->setOnlyBurnExistingImage( true ); job = _job; } break; case IMAGE_AUDIO_CUE: { K3b::AudioCueFileWritingJob* job_ = new K3b::AudioCueFileWritingJob( &dlg, this ); job_->setBurnDevice( d->writerSelectionWidget->writerDevice() ); job_->setSpeed( d->writerSelectionWidget->writerSpeed() ); job_->setSimulate( d->checkDummy->isChecked() ); job_->setWritingMode( d->writingModeWidget->writingMode() ); job_->setCueFile( d->tocFile ); job_->setCopies( d->checkDummy->isChecked() ? 1 : d->spinCopies->value() ); job_->setOnTheFly( !d->checkCacheImage->isChecked() ); job_->setTempDir( d->tempDirSelectionWidget->tempPath() ); job = job_; } break; case IMAGE_CUE_BIN: // for now the K3b::BinImageWritingJob decides if it's a toc or a cue file case IMAGE_CDRDAO_TOC: { K3b::BinImageWritingJob* job_ = new K3b::BinImageWritingJob( &dlg, this ); job_->setWriter( d->writerSelectionWidget->writerDevice() ); job_->setSpeed( d->writerSelectionWidget->writerSpeed() ); job_->setTocFile( d->tocFile ); job_->setSimulate(d->checkDummy->isChecked()); job_->setMulti( false /*d->checkNoFix->isChecked()*/ ); job_->setCopies( d->checkDummy->isChecked() ? 1 : d->spinCopies->value() ); job = job_; } break; case IMAGE_ISO: { K3b::Iso9660 isoFs( d->imageFile ); if( isoFs.open() ) { if( K3b::filesize( KUrl(d->imageFile) ) < Private::volumeSpaceSize( isoFs ) ) { if( KMessageBox::questionYesNo( this, i18n("<p>The actual file size does not match the size declared in the file header. " "If it has been downloaded make sure the download is complete.</p>" "<p>Only continue if you know what you are doing.</p>"), i18n("Warning"), KStandardGuiItem::cont(), KStandardGuiItem::cancel() ) == KMessageBox::No ) return; } } K3b::Iso9660ImageWritingJob* job_ = new K3b::Iso9660ImageWritingJob( &dlg ); job_->setBurnDevice( d->writerSelectionWidget->writerDevice() ); job_->setSpeed( d->writerSelectionWidget->writerSpeed() ); job_->setSimulate( d->checkDummy->isChecked() ); job_->setWritingMode( d->writingModeWidget->writingMode() ); job_->setVerifyData( d->checkVerify->isChecked() ); job_->setNoFix( d->checkNoFix->isChecked() ); job_->setDataMode( d->dataModeWidget->dataMode() ); job_->setImagePath( d->imageFile ); job_->setCopies( d->checkDummy->isChecked() ? 1 : d->spinCopies->value() ); job = job_; } break; default: kDebug() << "(K3b::ImageWritingDialog) this should really not happen!"; break; } if( job ) { job->setWritingApp( d->writerSelectionWidget->writingApp() ); hide(); dlg.startJob(job); delete job; if( KConfigGroup( KGlobal::config(), "General Options" ).readEntry( "keep action dialogs open", false ) ) show(); else close(); } }