File indexing completed on 2024-06-16 04:23:10

0001 /*
0002     SPDX-FileCopyrightText: 2008 David Nolden <david.nolden.kdevelop@art-master.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "refactoringdialog.h"
0008 
0009 #include <language/duchain/duchainlock.h>
0010 #include <language/duchain/navigation/usescollector.h>
0011 
0012 namespace KDevelop {
0013 RefactoringProgressDialog::RefactoringProgressDialog(const QString& action, KDevelop::UsesCollector* collector)
0014     : m_collector(collector)
0015 {
0016     if (!collector) {
0017         return;
0018     }
0019 
0020     m_rd.setupUi(this);
0021 
0022     m_rd.progressBar->setMinimum(0);
0023     m_rd.progressBar->setMaximum(0);
0024     m_rd.renameLabel->setText(action);
0025     connect(m_collector, &UsesCollector::processUsesSignal, this, &RefactoringProgressDialog::processUses);
0026     connect(m_collector, &UsesCollector::progressSignal, this, &RefactoringProgressDialog::progress);
0027     connect(m_collector, &UsesCollector::maximumProgressSignal, this, &RefactoringProgressDialog::maximumProgress);
0028 }
0029 
0030 void RefactoringProgressDialog::progress(uint done, uint max)
0031 {
0032     if (done == max)
0033         accept();
0034 }
0035 
0036 void RefactoringProgressDialog::maximumProgress(uint max)
0037 {
0038     if (max == 0)
0039         accept();
0040 }
0041 
0042 void RefactoringProgressDialog::processUses(const KDevelop::ReferencedTopDUContext& context)
0043 {
0044     DUChainReadLocker lock;
0045     if (context.data()) {
0046         m_rd.fileLabel->setText(context->url().str());
0047     }
0048 }
0049 }
0050 
0051 #include "moc_refactoringdialog.cpp"