generic: adjust to kparts changes

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2023-08-31 05:02:50 +03:00
parent a533e0d19c
commit b510355f1b
7 changed files with 18 additions and 230 deletions

View file

@ -133,8 +133,6 @@ Part::Part(QWidget *parentWidget, QObject *parent, const QVariantList& args)
connect(this, SIGNAL(completed()),
this, SLOT(setFileNameFromArchive()));
m_statusBarExtension = new KParts::StatusBarExtension(this);
setXMLFile(QLatin1String( "ark_part.rc" ));
}
@ -151,7 +149,6 @@ void Part::registerJob(KJob* job)
{
if (!m_jobTracker) {
m_jobTracker = new JobTracker(widget());
m_statusBarExtension->addStatusBarItem(m_jobTracker->widget(0), 0, true);
m_jobTracker->widget(job)->show();
}
m_jobTracker->registerJob(job);

View file

@ -25,18 +25,16 @@
#include "interface.h"
#include <KParts/Part>
#include <KParts/StatusBarExtension>
#include <KTempDir>
#include <QModelIndex>
#include <QAction>
#include <QSplitter>
#include <QTreeView>
#include <KParts/Part>
#include <KTempDir>
class ArchiveModel;
class InfoPanel;
class KAbstractWidgetJobTracker;
class KAboutData;
class KAction;
@ -126,7 +124,6 @@ private:
PreviewMode m_previewMode;
KAbstractWidgetJobTracker *m_jobTracker;
KParts::StatusBarExtension *m_statusBarExtension;
};
} // namespace Ark

View file

@ -26,7 +26,6 @@ set(filelight_PART_SRCS
radialMap/labels.cpp
part.cpp
scan.cpp
progressBox.cpp
Config.cpp
settingsDialog.cpp
fileTree.cpp

View file

@ -24,7 +24,6 @@
#include "Config.h"
#include "define.h"
#include "fileTree.h"
#include "progressBox.h"
#include "radialMap/widget.h"
#include "scan.h"
#include "settingsDialog.h"
@ -66,7 +65,6 @@ K_EXPORT_PLUGIN(filelightPartFactory(KAboutData(
Part::Part(QWidget *parentWidget, QObject *parent, const QList<QVariant>&)
: ReadOnlyPart(parent)
, m_summary(0)
, m_statusbar(new StatusBarExtension(this))
, m_map(0)
, m_started(false)
{
@ -94,13 +92,6 @@ Part::Part(QWidget *parentWidget, QObject *parent, const QList<QVariant>&)
m_map = new RadialMap::Widget(partWidget);
m_layout->addWidget(m_map);
m_stateWidget = new ProgressBox(statusBar(), this, m_manager);
m_layout->addWidget(m_stateWidget);
m_stateWidget->hide();
m_numberOfFiles = new QLabel();
m_statusbar->addStatusBarItem(m_numberOfFiles, 0, true);
KStandardAction::zoomIn(m_map, SLOT(zoomIn()), actionCollection());
KStandardAction::zoomOut(m_map, SLOT(zoomOut()), actionCollection());
KAction *action = actionCollection()->addAction(QLatin1String("configure_filelight"));
@ -178,9 +169,6 @@ Part::openUrl(const KUrl &u)
if (m_summary != 0)
m_summary->hide();
m_stateWidget->show();
m_layout->addWidget(m_stateWidget);
return start(uri);
}
@ -191,10 +179,9 @@ bool
Part::closeUrl()
{
if (m_manager->abort())
statusBar()->showMessage(i18n("Aborting Scan..."));
emit setStatusBarText(i18n("Aborting Scan..."));
m_map->hide();
m_stateWidget->hide();
showSummary();
@ -229,15 +216,15 @@ bool
Part::start(const KUrl &url)
{
if (!m_started) {
connect(m_map, SIGNAL(mouseHover(QString)), statusBar(), SLOT(showMessage(QString)));
connect(m_map, SIGNAL(created(const Folder*)), statusBar(), SLOT(clearMessage()));
connect(m_map, SIGNAL(mouseHover(QString)), this, SIGNAL(setStatusBarText(QString)));
connect(m_map, SIGNAL(created(const Folder*)), this, SLOT(clearStatusBarMessage()));
m_started = true;
}
if (m_manager->running())
m_manager->abort();
m_numberOfFiles->setText(QString());
emit setStatusBarText(QString());
if (m_manager->start(url)) {
setUrl(url);
@ -246,7 +233,7 @@ Part::start(const KUrl &url)
stateChanged(QLatin1String( "scan_started" ));
emit started(0); //as a Part, we have to do this
emit setWindowCaption(s);
statusBar()->showMessage(s);
emit setStatusBarText(s);
m_map->hide();
m_map->invalidate(); //to maintain ui consistency
@ -270,7 +257,6 @@ Part::rescan()
//FIXME we have to empty the cache because otherwise rescan picks up the old tree..
m_manager->emptyCache(); //causes canvas to invalidate
m_map->hide();
m_stateWidget->show();
start(url());
}
@ -278,9 +264,8 @@ void
Part::scanCompleted(Folder *tree)
{
if (tree) {
statusBar()->showMessage(i18n("Scan completed, generating map..."));
emit setStatusBarText(i18n("Scan completed, generating map..."));
m_stateWidget->hide();
m_map->show();
m_map->create(tree);
@ -291,7 +276,7 @@ Part::scanCompleted(Folder *tree)
emit canceled(i18n("Scan failed: %1", prettyUrl()));
emit setWindowCaption(QString());
statusBar()->clearMessage();
emit setStatusBarText(QString());
setUrl(KUrl());
}
@ -309,7 +294,13 @@ Part::mapChanged(const Folder *tree)
i18n("No files.") :
i18np("1 file", "%1 files",fileCount);
m_numberOfFiles->setText(text);
emit setStatusBarText(text);
}
void
Part::clearStatusBarMessage()
{
emit setStatusBarText(QString());
}
void

View file

@ -22,13 +22,11 @@
#ifndef FILELIGHTPART_H
#define FILELIGHTPART_H
#include <KParts/StatusBarExtension>
#include <KParts/Part>
#include <KUrl>
#include <QtGui/QLabel>
using KParts::StatusBarExtension;
namespace RadialMap {
class Widget;
}
@ -64,20 +62,15 @@ private slots:
void postInit();
void scanCompleted(Folder*);
void mapChanged(const Folder*);
void clearStatusBarMessage();
private:
KStatusBar *statusBar() {
return m_statusbar->statusBar();
}
void showSummary();
QLayout *m_layout;
QWidget *m_summary;
StatusBarExtension *m_statusbar;
RadialMap::Widget *m_map;
QWidget *m_stateWidget;
class ScanManager *m_manager;
QLabel *m_numberOfFiles;
bool m_started;

View file

@ -1,131 +0,0 @@
/***********************************************************************
* Copyright 2003-2004 Max Howell <max.howell@methylblue.com>
* Copyright 2008-2009 Martin Sandsmark <martin.sandsmark@kde.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License or (at your option) version 3 or any later version
* accepted by the membership of KDE e.V. (or its successor approved
* by the membership of KDE e.V.), which shall act as a proxy
* defined in Section 14 of version 3 of the license.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
***********************************************************************/
#include "progressBox.h"
#include "scan.h"
#include <KGlobal>
#include <KGlobalSettings>
#include <KColorScheme>
#include <KIO/Job>
#include <KLocale>
#include <QtGui/QLabel>
#include <QPainter>
#include <QtCore/QDebug>
#include <math.h>
ProgressBox::ProgressBox(QWidget *parent, QObject *part, Filelight::ScanManager *m)
: QWidget(parent)
, m_manager(m)
{
hide();
setObjectName(QLatin1String( "ProgressBox" ));
setFont(KGlobalSettings::fixedFont());
setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
setText(999999);
setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
setMinimumSize(200, 200);
connect(&m_timer, SIGNAL(timeout()), SLOT(report()));
connect(part, SIGNAL(started(KIO::Job*)), SLOT(start()));
connect(part, SIGNAL(completed()), SLOT(stop()));
connect(part, SIGNAL(canceled(QString)), SLOT(halt()));
}
void
ProgressBox::start() //slot
{
m_timer.start(50); //20 times per second - very smooth
report();
show();
}
void
ProgressBox::report() //slot
{
setText(m_manager->files());
repaint();
}
void
ProgressBox::stop()
{
m_timer.stop();
}
void
ProgressBox::halt()
{
// canceled by stop button
m_timer.stop();
QTimer::singleShot(2000, this, SLOT(hide()));
}
void
ProgressBox::setText(int files)
{
m_text = i18np("%1 File", "%1 Files", files);
m_textWidth = fontMetrics().width(m_text);
m_textHeight = fontMetrics().height();
}
static const int pieces = 4;
static const float angleFactor[] = { -0.75, 0.5, 1.0, -0.3 };
static const int length[] = { 30, 40, 50, 60 };
static const int aLength[] = { 300, 2000, 200, 2000 };
void ProgressBox::paintEvent(QPaintEvent*)
{
KColorScheme view = KColorScheme(QPalette::Active, KColorScheme::Tooltip);
QPainter paint(this);
paint.setRenderHint(QPainter::Antialiasing);
static int tick = 0;
tick+=16;
for (int i=0; i<pieces; i++) {
const QRect rect(length[i]/2, length[i]/2, 200- length[i], 200-length[i]);
int angle = angleFactor[i] + tick*angleFactor[i];
QRadialGradient gradient(rect.center(), sin(angle/160.0f) * 100);
gradient.setColorAt(0, QColor::fromHsv(abs(angle/16) % 360 , 160, 255));
gradient.setColorAt(1, QColor::fromHsv(abs(angle/16) % 360 , 160, 128));
QBrush brush(gradient);
paint.setBrush(brush);
paint.drawPie(QRect(rect), angle, aLength[i]);
}
paint.setBrush(view.background(KColorScheme::ActiveBackground));
paint.setPen(view.foreground().color());
paint.translate(0.5, 0.5);
paint.drawRoundedRect(95-m_textWidth/2, 85, m_textWidth+10, m_textHeight+10, 5, 5);
paint.translate(-0.5, -0.5);
paint.drawText(100 - m_textWidth/2, 100, m_text);
}
#include "moc_progressBox.cpp"

View file

@ -1,58 +0,0 @@
/***********************************************************************
* Copyright 2003-2004 Max Howell <max.howell@methylblue.com>
* Copyright 2008-2009 Martin Sandsmark <martin.sandsmark@kde.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License or (at your option) version 3 or any later version
* accepted by the membership of KDE e.V. (or its successor approved
* by the membership of KDE e.V.), which shall act as a proxy
* defined in Section 14 of version 3 of the license.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
***********************************************************************/
#ifndef PROGRESSBOX_H
#define PROGRESSBOX_H
#include <QtGui/QLabel>
#include <QtCore/QTimer>
namespace Filelight {
class ScanManager;
}
class ProgressBox : public QWidget
{
Q_OBJECT
public:
ProgressBox(QWidget*, QObject*, Filelight::ScanManager*);
void setText(int);
public slots:
void start();
void report();
void stop();
void halt();
protected:
void paintEvent(QPaintEvent *event);
private:
QTimer m_timer;
Filelight::ScanManager* m_manager;
QString m_text;
int m_textWidth;
int m_textHeight;
};
#endif