File indexing completed on 2024-05-12 07:51:49
0001 /* 0002 This file is part of KNewStuffQuick. 0003 SPDX-FileCopyrightText: 2016 Dan Leinir Turthra Jensen <admin@leinir.dk> 0004 0005 SPDX-License-Identifier: LGPL-2.1-or-later 0006 */ 0007 0008 #include "quickquestionlistener.h" 0009 0010 #include "core/question.h" 0011 0012 #include <QCoreApplication> 0013 #include <QPointer> 0014 0015 using namespace KNewStuffQuick; 0016 0017 Q_GLOBAL_STATIC(QuickQuestionListener, s_quickQuestionListener) 0018 QuickQuestionListener *QuickQuestionListener::instance() 0019 { 0020 return s_quickQuestionListener; 0021 } 0022 0023 QuickQuestionListener::~QuickQuestionListener() 0024 { 0025 if (m_question) { 0026 m_question->setResponse(KNSCore::Question::CancelResponse); 0027 } 0028 } 0029 0030 void QuickQuestionListener::askQuestion(KNSCore::Question *question) 0031 { 0032 switch (question->questionType()) { 0033 case KNSCore::Question::SelectFromListQuestion: 0034 Q_EMIT askListQuestion(question->title(), question->question(), question->list()); 0035 break; 0036 case KNSCore::Question::ContinueCancelQuestion: 0037 Q_EMIT askContinueCancelQuestion(question->title(), question->question()); 0038 break; 0039 case KNSCore::Question::InputTextQuestion: 0040 Q_EMIT askTextInputQuestion(question->title(), question->question()); 0041 break; 0042 case KNSCore::Question::PasswordQuestion: 0043 Q_EMIT askPasswordQuestion(question->title(), question->question()); 0044 break; 0045 case KNSCore::Question::YesNoQuestion: 0046 default: 0047 Q_EMIT askYesNoQuestion(question->title(), question->question()); 0048 break; 0049 } 0050 m_question = question; 0051 } 0052 0053 void KNewStuffQuick::QuickQuestionListener::passResponse(bool responseIsContinue, QString input) 0054 { 0055 if (m_question) { 0056 if (responseIsContinue) { 0057 m_question->setResponse(input); 0058 switch (m_question->questionType()) { 0059 case KNSCore::Question::ContinueCancelQuestion: 0060 m_question->setResponse(KNSCore::Question::ContinueResponse); 0061 break; 0062 case KNSCore::Question::YesNoQuestion: 0063 m_question->setResponse(KNSCore::Question::YesResponse); 0064 break; 0065 case KNSCore::Question::SelectFromListQuestion: 0066 case KNSCore::Question::InputTextQuestion: 0067 case KNSCore::Question::PasswordQuestion: 0068 default: 0069 m_question->setResponse(KNSCore::Question::OKResponse); 0070 break; 0071 } 0072 } else { 0073 switch (m_question->questionType()) { 0074 case KNSCore::Question::YesNoQuestion: 0075 m_question->setResponse(KNSCore::Question::NoResponse); 0076 break; 0077 case KNSCore::Question::SelectFromListQuestion: 0078 case KNSCore::Question::InputTextQuestion: 0079 case KNSCore::Question::PasswordQuestion: 0080 case KNSCore::Question::ContinueCancelQuestion: 0081 default: 0082 m_question->setResponse(KNSCore::Question::CancelResponse); 0083 break; 0084 } 0085 } 0086 m_question.clear(); 0087 } 0088 } 0089 0090 #include "moc_quickquestionlistener.cpp"