Commit c943c459 authored by Eduardo Robles Elvira's avatar Eduardo Robles Elvira

* reverting the changes in lib/konq

* fixing the signal crazyness in KonqUndoManager
* Adding a singleton to replace lib/konq's bypassCustomInfo
* some other minor changes


svn path=/trunk/KDE/kdebase/apps/; revision=787257
parent 37b83c0e
......@@ -62,7 +62,7 @@ set(konqueror_KDEINIT_SRCS
KonqViewAdaptor.cpp
konqproxystyle.cpp
konqundomanager.cpp
konqclosedtabitem.cpp
konqcloseditem.cpp
)
kde4_add_kcfg_files(konqueror_KDEINIT_SRCS konqsettingsxt.kcfgc)
kde4_add_ui_files(konqueror_KDEINIT_SRCS konqprofiledlg_base.ui)
......
......@@ -18,13 +18,13 @@
Boston, MA 02110-1301, USA.
*/
#include "konqclosedtabitem.h"
#include "konqcloseditem.h"
#include <kconfig.h>
#include <kdebug.h>
#include <kglobal.h>
#include <konqpixmapprovider.h>
K_GLOBAL_STATIC_WITH_ARGS(KConfig, s_config, ("konqueror_closedtabs", KConfig::NoGlobals) )
K_GLOBAL_STATIC_WITH_ARGS(KConfig, s_config, ("konqueror_closeditems", KConfig::NoGlobals) )
KonqClosedItem::KonqClosedItem(const QString& title, const QString& group, quint64 serialNumber)
: m_title(title), m_configGroup(s_config, group), m_serialNumber(serialNumber)
......
......@@ -18,8 +18,8 @@
Boston, MA 02110-1301, USA.
*/
#ifndef KONQCLOSEDTABITEM_H
#define KONQCLOSEDTABITEM_H
#ifndef KONQCLOSEDITEM_H
#define KONQCLOSEDITEM_H
#include "konqprivate_export.h"
#include <kconfiggroup.h>
......@@ -70,5 +70,5 @@ public:
virtual QPixmap icon();
};
#endif /* KONQCLOSEDTABITEM_H */
#endif /* KONQCLOSEDITEM_H */
......@@ -23,7 +23,7 @@
#include "konqmainwindow.h"
#include "konqdraggablelabel.h"
#include "konqclosedtabitem.h"
#include "konqcloseditem.h"
#include "konqapplication.h"
#include "konqguiclients.h"
#include "KonqMainWindowAdaptor.h"
......@@ -5009,29 +5009,13 @@ void KonqMainWindow::addClosedWindowToUndoList()
{
kDebug(1202);
// 1. We get the current tab, and the title (which might end up being its url)
// 1. We get the current title
KonqFrameTabs* tabContainer = m_pViewManager->tabContainer();
QString title( i18n("no name") );
QString title( i18n("no name") ), url("about:blank");
KonqFrameBase* tab = dynamic_cast<KonqFrameBase*>(m_pViewManager->tabContainer()->currentWidget());
// Did the tab contain a single frame, or a splitter?
KonqFrame* frame = dynamic_cast<KonqFrame *>(tab);
if (!frame) {
KonqFrameContainer* frameContainer = dynamic_cast<KonqFrameContainer *>(tab);
if (frameContainer->activeChildView())
frame = frameContainer->activeChildView()->frame();
}
KParts::ReadOnlyPart* part = frame ? frame->part() : 0;
if (part)
url = part->url().url();
if (frame)
title = frame->title().trimmed();
if (title.isEmpty())
title = url;
title = KStringHandler::csqueeze( title, 50 );
if(m_currentView)
title = m_currentView->caption();
kDebug(1202) << "1";
// 2. Create the KonqClosedWindowItem and save its config
KonqClosedWindowItem* closedWindowItem = new KonqClosedWindowItem(title, m_undoManager->newCommandSerialNumber());
KonqFrameBase::Options flags = KonqFrameBase::saveHistoryItems;
......@@ -5043,10 +5027,9 @@ void KonqMainWindow::addClosedWindowToUndoList()
closedWindowItem->configGroup().writeEntry( "FullScreen", fullScreenMode() );
tabContainer->saveConfig( closedWindowItem->configGroup(), prefix, flags, 0L, 0, 1);
kDebug(1202) << "2";
// 3. Finally add the KonqClosedWindowItem to the undo list
m_paClosedItems->setEnabled(true);
m_undoManager->addWindowInOtherInstances( closedWindowItem );
m_undoManager->addClosedWindowItem( closedWindowItem );
kDebug(1202) << "done";
}
......
......@@ -20,28 +20,37 @@
#include "konqundomanager.h"
#include <QAction>
#include "konqclosedtabitem.h"
#include <konq_fileundomanager.h>
#include <kconfig.h>
#include <kdebug.h>
#include <klocale.h>
#include <kglobal.h>
static unsigned long s_konqUndoManagerRefCnt = 0;
class KonqUndoManagerCommunicatorPrivate {
public:
KonqUndoManagerCommunicator instance;
QList<KonqClosedWindowItem *> m_closedWindowItemList;
};
K_GLOBAL_STATIC(KonqUndoManagerCommunicatorPrivate, myKonqUndoManagerCommunicatorPrivate)
KonqUndoManager::KonqUndoManager(QObject* parent)
: QObject(parent)
{
incRef();
KonqFileUndoManager::incRef();
connect( KonqFileUndoManager::self(), SIGNAL(undoAvailable(bool)),
this, SLOT(slotFileUndoAvailable(bool)) );
connect( KonqFileUndoManager::self(), SIGNAL(undoTextChanged(QString)),
this, SLOT(slotFileUndoTextChanged(QString)) );
connect(KonqFileUndoManager::self(), SIGNAL(bypassCustomInfo(QVariant &)),
this, SLOT( slotBypassCustomInfo(QVariant &) ) );
connect(this, SIGNAL( bypassCustomInfo( QVariant &) ),
KonqFileUndoManager::self(), SIGNAL( bypassCustomInfo( QVariant &) ) );
connect(KonqUndoManagerCommunicator::self(),
SIGNAL(addWindowInOtherInstances(KonqUndoManager *, KonqClosedWindowItem *)), this,
SLOT( slotAddClosedWindowItem(KonqUndoManager *, KonqClosedWindowItem *) ));
connect(KonqUndoManagerCommunicator::self(),
SIGNAL(removeWindowInOtherInstances(KonqUndoManager *, const KonqClosedWindowItem *)), this,
SLOT( slotRemoveClosedWindowItem(KonqUndoManager *, const KonqClosedWindowItem *) ));
populate();
}
KonqUndoManager::~KonqUndoManager()
......@@ -51,30 +60,25 @@ KonqUndoManager::~KonqUndoManager()
disconnect( KonqFileUndoManager::self(), SIGNAL(undoTextChanged(QString)),
this, SLOT(slotFileUndoTextChanged(QString)) );
disconnect(KonqFileUndoManager::self(), SIGNAL(bypassCustomInfo(QVariant &)),
this, SLOT( slotBypassCustomInfo(QVariant &) ) );
disconnect(this, SIGNAL( bypassCustomInfo( QVariant &) ),
KonqFileUndoManager::self(), SIGNAL( bypassCustomInfo( QVariant &) ) );
decRef();
// Important! do decRef() before doing clearClosedItemsList() here:
disconnect(KonqUndoManagerCommunicator::self(),
SIGNAL(addWindowInOtherInstances(KonqUndoManager *, KonqClosedWindowItem *)), this,
SLOT( slotAddClosedWindowItem(KonqUndoManager *, KonqClosedWindowItem *) ));
disconnect(KonqUndoManagerCommunicator::self(),
SIGNAL(removeWindowInOtherInstances(KonqUndoManager *, const KonqClosedWindowItem *)), this,
SLOT( slotRemoveClosedWindowItem(KonqUndoManager *, const KonqClosedWindowItem *) ));
KonqFileUndoManager::decRef();
clearClosedItemsList();
}
void KonqUndoManager::incRef()
void KonqUndoManager::populate()
{
kDebug();
KonqFileUndoManager::incRef();
s_konqUndoManagerRefCnt++;
kDebug() << s_konqUndoManagerRefCnt;
}
const QList<KonqClosedWindowItem *> closedWindowItemList =
KonqUndoManagerCommunicator::self()->closedWindowItemList();
void KonqUndoManager::decRef()
{
kDebug();
KonqFileUndoManager::decRef();
s_konqUndoManagerRefCnt--;
foreach(KonqClosedWindowItem *closedWindowItem, closedWindowItemList)
slotAddClosedWindowItem(0L, closedWindowItem);
}
void KonqUndoManager::slotFileUndoAvailable(bool)
......@@ -125,7 +129,7 @@ void KonqUndoManager::undo()
emit openClosedTab(*closedTabItem);
else if(closedWindowItem) {
emit openClosedWindow(*closedWindowItem);
removeWindowInOtherInstances(closedWindowItem);
KonqUndoManagerCommunicator::self()->removeClosedWindowItem(this, closedWindowItem);
}
delete closedItem;
emit undoAvailable(this->undoAvailable());
......@@ -138,58 +142,35 @@ void KonqUndoManager::undo()
}
}
void KonqUndoManager::removeWindowInOtherInstances(const KonqClosedWindowItem
*closedWindowItem)
void KonqUndoManager::slotAddClosedWindowItem(KonqUndoManager *real_sender, KonqClosedWindowItem *closedWindowItem)
{
QList<QVariant> items;
QString order("remove");
const QObject *myClosedWindowItem =
reinterpret_cast<const QObject *>(closedWindowItem);
items.append(qVariantFromValue(reinterpret_cast<QObject *>(this)));
items.append(qVariantFromValue(order));
items.append(qVariantFromValue(const_cast<QObject *>(myClosedWindowItem)));
QVariant myData(items);
emit bypassCustomInfo(myData);
if(real_sender == this)
return;
kDebug();
m_closedItemList.prepend(closedWindowItem);
emit undoTextChanged(i18n("Und&o: Closed Window"));
emit undoAvailable(true);
emit closedItemsListChanged();
}
void KonqUndoManager::addWindowInOtherInstances(const KonqClosedWindowItem
*closedWindowItem)
void KonqUndoManager::addClosedWindowItem(KonqClosedWindowItem *closedWindowItem)
{
QList<QVariant> items;
QString order("add");
const QObject *myClosedWindowItem =
reinterpret_cast<const QObject *>(closedWindowItem);
items.append(qVariantFromValue(reinterpret_cast<QObject *>(this)));
items.append(qVariantFromValue(order));
items.append(qVariantFromValue(const_cast<QObject *>(myClosedWindowItem)));
QVariant myData(items);
emit bypassCustomInfo(myData);
KonqUndoManagerCommunicator::self()->addClosedWindowItem(this, closedWindowItem);
}
void KonqUndoManager::slotBypassCustomInfo(QVariant &customData)
void KonqUndoManager::slotRemoveClosedWindowItem(KonqUndoManager *real_sender, const KonqClosedWindowItem *closedWindowItem)
{
QList<QVariant> items = customData.toList();
KonqUndoManager *undoManager =
static_cast<KonqUndoManager *>(items.first().value<QObject*>());
QString order = items.at(1).toString();
KonqClosedWindowItem *closedWindowItem =
static_cast<KonqClosedWindowItem *>(items.at(2).value<QObject*>());
if(undoManager != this)
{
if(order == "remove")
{
QList<KonqClosedItem *>::iterator it = qFind(m_closedItemList.begin(), m_closedItemList.end(), closedWindowItem);
if(real_sender == this)
return;
QList<KonqClosedItem *>::iterator it = qFind(m_closedItemList.begin(), m_closedItemList.end(), closedWindowItem);
// If the item was found, remove it from the list
if(it != m_closedItemList.end()) {
m_closedItemList.erase(it);
emit undoAvailable(this->undoAvailable());
emit closedItemsListChanged();
}
} else if (order == "add")
{
addClosedWindowItem(closedWindowItem);
}
// If the item was found, remove it from the list
if(it != m_closedItemList.end()) {
m_closedItemList.erase(it);
emit undoAvailable(this->undoAvailable());
emit closedItemsListChanged();
}
}
......@@ -212,7 +193,7 @@ void KonqUndoManager::undoClosedItem(int index)
emit openClosedTab(*closedTabItem);
else if(closedWindowItem) {
emit openClosedWindow(*closedWindowItem);
removeWindowInOtherInstances(closedWindowItem);
emit removeWindowInOtherInstances(this, closedWindowItem);
}
delete closedTabItem;
emit undoAvailable(this->undoAvailable());
......@@ -245,14 +226,6 @@ void KonqUndoManager::addClosedTabItem(KonqClosedTabItem* closedTabItem)
emit undoAvailable(true);
}
void KonqUndoManager::addClosedWindowItem(KonqClosedWindowItem* closedWindowItem)
{
m_closedItemList.prepend(closedWindowItem);
emit undoTextChanged(i18n("Und&o: Closed Window"));
emit undoAvailable(true);
emit closedItemsListChanged();
}
void KonqUndoManager::updateSupportsFileUndo(bool enable)
{
m_supportsFileUndo = enable;
......@@ -261,7 +234,7 @@ void KonqUndoManager::updateSupportsFileUndo(bool enable)
void KonqUndoManager::clearClosedItemsList()
{
// DELETE only tab items! So we can't do this anymore:
// normally we only DELETE tab items! So we can't do this anymore:
// qDeleteAll(m_closedItemList);
QList<KonqClosedItem *>::iterator it = m_closedItemList.begin();
for (; it != m_closedItemList.end(); ++it)
......@@ -275,10 +248,7 @@ void KonqUndoManager::clearClosedItemsList()
m_closedItemList.erase(it);
if(closedTabItem)
delete closedTabItem;
else if(s_konqUndoManagerRefCnt == 0 && closedWindowItem)
// delete closed windows only if this is the last window and it's
// being closed too, see destructor.
delete closedWindowItem;
// we never delete closed window items here
}
emit closedItemsListChanged();
emit undoAvailable(this->undoAvailable());
......@@ -288,3 +258,43 @@ void KonqUndoManager::undoLastClosedItem()
{
undoClosedItem(0);
}
KonqUndoManagerCommunicator::KonqUndoManagerCommunicator()
{
}
KonqUndoManagerCommunicator::~KonqUndoManagerCommunicator()
{
}
KonqUndoManagerCommunicator *KonqUndoManagerCommunicator::self()
{
return &myKonqUndoManagerCommunicatorPrivate->instance;
}
void KonqUndoManagerCommunicator::addClosedWindowItem(KonqUndoManager
*real_sender, KonqClosedWindowItem *closedWindowItem)
{
myKonqUndoManagerCommunicatorPrivate->m_closedWindowItemList.prepend(closedWindowItem);
emit addWindowInOtherInstances(real_sender, closedWindowItem);
}
void KonqUndoManagerCommunicator::removeClosedWindowItem(KonqUndoManager
*real_sender, const KonqClosedWindowItem *closedWindowItem)
{
QList<KonqClosedWindowItem *> &closedWindowItemList =
myKonqUndoManagerCommunicatorPrivate->m_closedWindowItemList;
QList<KonqClosedWindowItem *>::iterator it = qFind(closedWindowItemList.begin(),
closedWindowItemList.end(), closedWindowItem);
// If the item was found, remove it from the list
if(it != closedWindowItemList.end()) {
closedWindowItemList.erase(it);
}
emit removeWindowInOtherInstances(real_sender, closedWindowItem);
}
const QList<KonqClosedWindowItem *>& KonqUndoManagerCommunicator::closedWindowItemList()
{
return myKonqUndoManagerCommunicatorPrivate->m_closedWindowItemList;
}
......@@ -24,9 +24,9 @@
#include "konqprivate_export.h"
#include <QObject>
#include "konqclosedtabitem.h"
#include "konqcloseditem.h"
class QAction;
class KonqUndoManagerCommunicatorPrivate;
/**
* Note that there is one KonqUndoManager per mainwindow.
* It integrates KonqFileUndoManager (undoing file operations)
......@@ -46,9 +46,11 @@ public:
const QList<KonqClosedItem* >& closedTabsList() const;
void undoClosedItem(int index);
void addClosedTabItem(KonqClosedTabItem* closedTabItem);
/**
* Add current window as a closed window item to other windows
*/
void addClosedWindowItem(KonqClosedWindowItem *closedWindowItem);
void updateSupportsFileUndo(bool enable);
void addWindowInOtherInstances(const KonqClosedWindowItem
*closedWindowItem);
public Q_SLOTS:
void undo();
......@@ -59,6 +61,7 @@ public Q_SLOTS:
* menu (by emitting openClosedTab/Window), and takes it from the list.
*/
void slotClosedItemsActivated(QAction* action);
void slotAddClosedWindowItem(KonqUndoManager *real_sender, KonqClosedWindowItem *closedWindowItem);
Q_SIGNALS:
void undoAvailable(bool canUndo);
......@@ -71,27 +74,50 @@ Q_SIGNALS:
/// Emitted when closedItemsList() has changed.
void closedItemsListChanged();
/// Emitted to be received in other window instances
void bypassCustomInfo(QVariant &customData);
/// Emitted to be received in other window instances, uing the singleton
/// communicator
void removeWindowInOtherInstances(KonqUndoManager *real_sender, const KonqClosedWindowItem
*closedWindowItem);
void addWindowInOtherInstances(KonqUndoManager *real_sender, KonqClosedWindowItem *closedWindowItem);
private Q_SLOTS:
void slotFileUndoAvailable(bool);
void slotFileUndoTextChanged(const QString& text);
/**
* Received from other window instances, removes a reference of a window
* from m_closedItemList.
* Received from other window instances, removes/adds a reference of a
* window from m_closedItemList.
*/
void slotBypassCustomInfo(QVariant &customData);
void slotRemoveClosedWindowItem(KonqUndoManager *real_sender, const KonqClosedWindowItem *closedWindowItem);
private:
void addClosedWindowItem(KonqClosedWindowItem* closedWindowItem);
void removeWindowInOtherInstances(const KonqClosedWindowItem
*closedWindowItem);
void incRef();
void decRef();
/// Fill the m_closedItemList with closed windows
void populate();
QList<KonqClosedItem *> m_closedItemList;
bool m_supportsFileUndo;
};
/**
* Provides a shared singleton for all Konq window instances.
* This class is a singleton, use self() to access its only instance.
*/
class KDE_EXPORT KonqUndoManagerCommunicator : public QObject
{
Q_OBJECT
public:
friend class KonqUndoManagerCommunicatorPrivate;
static KonqUndoManagerCommunicator *self();
const QList<KonqClosedWindowItem *>& closedWindowItemList();
void addClosedWindowItem(KonqUndoManager *real_sender, KonqClosedWindowItem *closedWindowItem);
void removeClosedWindowItem(KonqUndoManager *real_sender, const KonqClosedWindowItem
*closedWindowItem);
Q_SIGNALS:
void addWindowInOtherInstances(KonqUndoManager *real_sender, KonqClosedWindowItem *closedWindowItem);
void removeWindowInOtherInstances(KonqUndoManager *real_sender, const KonqClosedWindowItem
*closedWindowItem);
private:
KonqUndoManagerCommunicator();
virtual ~KonqUndoManagerCommunicator();
};
#endif /* KONQUNDOMANAGER_H */
......@@ -19,7 +19,7 @@
*/
#include "konqviewmanager.h"
#include "konqclosedtabitem.h"
#include "konqcloseditem.h"
#include "konqundomanager.h"
#include <QtCore/QFileInfo>
......
......@@ -63,9 +63,9 @@
*
*/
enum UndoState { MAKINGDIRS = 0, MOVINGFILES, STATINGFILE, REMOVINGDIRS, REMOVINGLINKS, DOINGCUSTOM };
enum UndoState { MAKINGDIRS = 0, MOVINGFILES, STATINGFILE, REMOVINGDIRS, REMOVINGLINKS };
static const char* undoStateToString( UndoState state ) {
static const char* s_undoStateToString[] = { "MAKINGDIRS", "MOVINGFILES", "STATINGFILE", "REMOVINGDIRS", "REMOVINGLINKS", "DOINGCUSTOM" };
static const char* s_undoStateToString[] = { "MAKINGDIRS", "MOVINGFILES", "STATINGFILE", "REMOVINGDIRS", "REMOVINGLINKS" };
return s_undoStateToString[state];
}
......@@ -286,8 +286,6 @@ QString KonqFileUndoManager::undoText() const
return i18n( "Und&o: Trash" );
else if ( t == KonqFileUndoManager::MKDIR )
return i18n( "Und&o: Create Folder" );
else if ( t == KonqFileUndoManager::CUSTOM )
return i18n( "Und&o: %1" ).arg( d->m_commands.top().m_typeCustom );
else
assert( false );
/* NOTREACHED */
......@@ -318,7 +316,7 @@ void KonqFileUndoManager::undo()
d->m_current = cmd;
KonqBasicOperation::Stack& opStack = d->m_current.m_opStack;
// Note that opStack is empty for simple operations like MKDIR or CUSTOM.
// Note that opStack is empty for simple operations like MKDIR.
// Let's first ask for confirmation if we need to delete any file (#99898)
KUrl::List fileCleanupStack;
......@@ -345,11 +343,7 @@ void KonqFileUndoManager::undo()
d->m_dirStack.clear();
d->m_dirsToUpdate.clear();
if ( d->m_current.m_type == KonqFileUndoManager::CUSTOM )
// If this is a custom command, start from there
d->m_undoState = DOINGCUSTOM;
else
d->m_undoState = MOVINGFILES;
d->m_undoState = MOVINGFILES;
// Let's have a look at the basic operations we need to undo.
// While we're at it, collect all links that should be deleted.
......@@ -443,9 +437,6 @@ void KonqFileUndoManager::undoStep()
{
d->m_currentJob = 0;
if ( d->m_undoState == DOINGCUSTOM )
stepDoingCustomOperations();
if ( d->m_undoState == MAKINGDIRS )
stepMakingDirectories();
......@@ -477,12 +468,6 @@ void KonqFileUndoManager::stepMakingDirectories()
d->m_undoState = MOVINGFILES;
}
void KonqFileUndoManager::stepDoingCustomOperations()
{
emit undoCustomCommand(d->m_current.m_customData);
d->m_undoState = MAKINGDIRS;
}
// Misnamed method: It moves files back, but it also
// renames directories back, recreates symlinks,
// deletes copied files, and restores trashed files.
......
......@@ -87,7 +87,7 @@ public:
*/
void setUiInterface( UiInterface* ui );
enum CommandType { COPY, MOVE, RENAME, LINK, MKDIR, TRASH, CUSTOM };
enum CommandType { COPY, MOVE, RENAME, LINK, MKDIR, TRASH };
/**
* Record this job while it's happening and add a command for it so that the user can undo it.
......@@ -127,14 +127,6 @@ Q_SIGNALS:
/// Emitted when an undo job finishes. Used for unit testing.
void undoJobFinished();
/**
* Emitted when a custom undo command must be dealt with by someone else,
* because as it's custom, we don't know how to deal with it.
* You need to connect any class that manages your program's custom commands
* to this signal.
*/
void undoCustomCommand( QByteArray &customData );
// The four signals below are emitted to DBus
void push( const QByteArray &command );
......@@ -142,36 +134,6 @@ Q_SIGNALS:
void lock();
void unlock();
/**
* A communication channel for superior level custom undo managers instances
* To use it do this, create your own signal and slot in your custom undo
* manager instance and connect to it like this:
*
* connect(KonqFileUndoManager::self(), SIGNAL( bypassCustomInfo( QVariant
* & ) ), this, SLOT( slotBypassCustomInfo( QVariant &) ) );
* connect(this, SIGNAL( bypassCustomInfo( QVariant &) ),
* KonqFileUndoManager::self(), SIGNAL( bypassCustomInfo( QVariant&) ) );
*
* QList< QVariant > items;
* QVariant myData(items);
* items.append(qVariantFromValue(static_cast< QObject *>(this)));
* items.append(qVariantFromValue(static_cast< QObject *>(data)));
*
* emit bypassCustomInfo(myData); // Sends information to other instances
*
* // Receives information from other instances
* void MyClass::slotBypassCustomInfo( QVariant &customData ) {
* QList< QVariant > items = customData.toList();
* MyClass myInstance = static_cast< MyClass *>(customData.first().value<QObject*>());
* MyData myInstance = static_cast< MyData *>(customData.at(1).value<QObject*>());
*
* if(myInstance != this)
* {
* // Do something if we are not the one emitting the signal
* }
* }
*/
void bypassCustomInfo( QVariant &customData );
private Q_SLOTS:
// Those four are connected to DBUS signals
void slotPush( QByteArray command ); // const ref doesn't work due to QDataStream
......@@ -200,7 +162,6 @@ private:
void stepMovingFiles();
void stepRemovingLinks();
void stepRemovingDirectories();
void stepDoingCustomOperations();
void broadcastPush( const KonqCommand &cmd );
void broadcastPop();
......
......@@ -79,8 +79,6 @@ public:
KUrl::List m_src;
KUrl m_dst;
quint64 m_serialNumber;
QString m_typeCustom;
QByteArray m_customData;
};
// This class listens to a job, collects info while it's running (for copyjobs)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment