You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
174 lines
5.1 KiB
174 lines
5.1 KiB
/******************************************************************* |
|
* reportassistantpages_bugzilla_duplicates.h |
|
* Copyright 2009 Dario Andres Rodriguez <andresbajotierra@gmail.com> |
|
* |
|
* 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) any later version. |
|
* |
|
* 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 REPORTASSISTANTPAGES__BUGZILLA__DUPLICATES_H |
|
#define REPORTASSISTANTPAGES__BUGZILLA__DUPLICATES_H |
|
|
|
#include "reportassistantpage.h" |
|
|
|
#include "duplicatefinderjob.h" |
|
#include "bugzillalib.h" |
|
|
|
#include "ui_assistantpage_bugzilla_duplicates.h" |
|
#include "ui_assistantpage_bugzilla_duplicates_dialog.h" |
|
#include "ui_assistantpage_bugzilla_duplicates_dialog_confirmation.h" |
|
#include <QDate> |
|
#include <QDialog> |
|
#include <kguiitem.h> |
|
|
|
class QDate; |
|
class QTreeWidgetItem; |
|
|
|
class KGuiItem; |
|
|
|
class BugzillaReportInformationDialog; |
|
|
|
/** Searching for duplicates and showing report information page**/ |
|
class BugzillaDuplicatesPage : public ReportAssistantPage |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
explicit BugzillaDuplicatesPage(ReportAssistantDialog *); |
|
~BugzillaDuplicatesPage(); |
|
|
|
void aboutToShow(); |
|
void aboutToHide(); |
|
|
|
bool isComplete(); |
|
bool showNextPage(); |
|
|
|
private Q_SLOTS: |
|
/* Search related methods */ |
|
void searchMore(); |
|
void performSearch(); |
|
void stopCurrentSearch(); |
|
|
|
void markAsSearching(bool); |
|
|
|
bool canSearchMore(); |
|
|
|
void searchFinished(const BugMapList&); |
|
void searchError(QString); |
|
void analyzedDuplicates(KJob *job); |
|
|
|
void resetDates(); |
|
|
|
/* Duplicates list related methods */ |
|
void openSelectedReport(); |
|
void itemClicked(QTreeWidgetItem *, int); |
|
void itemClicked(QListWidgetItem *); |
|
void showReportInformationDialog(int, bool relatedButtonEnabled = true); |
|
void itemSelectionChanged(); |
|
|
|
/* Selected duplicates list related methods */ |
|
void addPossibleDuplicateNumber(int); |
|
void removeSelectedDuplicate(); |
|
|
|
void showDuplicatesPanel(bool); |
|
|
|
void possibleDuplicateSelectionChanged(); |
|
|
|
/* Attach to bug related methods */ |
|
void attachToBugReport(int); |
|
void cancelAttachToBugReport(); |
|
void informationClicked(const QString &activatedLink); |
|
|
|
private: |
|
bool m_searching; |
|
bool m_foundDuplicate; |
|
|
|
Ui::AssistantPageBugzillaDuplicates ui; |
|
|
|
//Dates of current Results |
|
QDate m_startDate; |
|
QDate m_endDate; |
|
//Dates of searching process |
|
QDate m_searchingStartDate; |
|
QDate m_searchingEndDate; |
|
|
|
KGuiItem m_searchMoreGuiItem; |
|
KGuiItem m_retrySearchGuiItem; |
|
DuplicateFinderJob::Result m_result; |
|
}; |
|
|
|
/** Internal bug-info dialog **/ |
|
class BugzillaReportInformationDialog : public QDialog |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
explicit BugzillaReportInformationDialog(BugzillaDuplicatesPage*parent=0); |
|
~BugzillaReportInformationDialog(); |
|
|
|
void showBugReport(int bugNumber, bool relatedButtonEnabled = true); |
|
|
|
void markAsDuplicate(); |
|
void attachToBugReport(); |
|
void cancelAssistant(); |
|
|
|
private Q_SLOTS: |
|
void bugFetchFinished(BugReport,QObject *); |
|
void bugFetchError(QString, QObject *); |
|
|
|
void reloadReport(); |
|
|
|
void relatedReportClicked(); |
|
|
|
void toggleShowOwnBacktrace(bool); |
|
|
|
Q_SIGNALS: |
|
void possibleDuplicateSelected(int); |
|
void attachToBugReportSelected(int); |
|
|
|
private: |
|
Ui::AssistantPageBugzillaDuplicatesDialog ui; |
|
bool m_relatedButtonEnabled; |
|
BugzillaDuplicatesPage * m_parent; |
|
|
|
int m_bugNumber; |
|
QString m_closedStateString; |
|
int m_duplicatesCount; |
|
QPushButton* m_suggestButton; |
|
}; |
|
|
|
class BugzillaReportConfirmationDialog : public QDialog |
|
{ |
|
Q_OBJECT |
|
|
|
public: |
|
BugzillaReportConfirmationDialog(int bugNumber, bool commonCrash, QString closedState, |
|
BugzillaReportInformationDialog * parent); |
|
~BugzillaReportConfirmationDialog(); |
|
|
|
private Q_SLOTS: |
|
void proceedClicked(); |
|
|
|
void checkProceed(); |
|
|
|
private: |
|
Ui::ConfirmationDialog ui; |
|
|
|
BugzillaReportInformationDialog * m_parent; |
|
|
|
bool m_showProceedQuestion; |
|
|
|
int m_bugNumber; |
|
}; |
|
#endif
|
|
|