File indexing completed on 2024-04-28 04:55:36
0001 /* 0002 This file is part of Choqok, the KDE micro-blogging client 0003 0004 SPDX-FileCopyrightText: 2010-2012 Mehrdad Momeny <mehrdad.momeny@gmail.com> 0005 0006 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0007 */ 0008 0009 #include "twitterapicomposerwidget.h" 0010 0011 #include <QCompleter> 0012 #include <QStringListModel> 0013 0014 #include "choqokbehaviorsettings.h" 0015 #include "choqokuiglobal.h" 0016 #include "postwidget.h" 0017 0018 #include "twitterapiaccount.h" 0019 #include "twitterapidebug.h" 0020 #include "twitterapitextedit.h" 0021 0022 class TwitterApiComposerWidget::Private 0023 { 0024 public: 0025 Private() 0026 : model(nullptr) 0027 {} 0028 QStringListModel *model; 0029 }; 0030 0031 TwitterApiComposerWidget::TwitterApiComposerWidget(Choqok::Account *account, QWidget *parent) 0032 : Choqok::UI::ComposerWidget(account, parent), d(new Private) 0033 { 0034 qCDebug(CHOQOK); 0035 d->model = new QStringListModel(qobject_cast<TwitterApiAccount *>(account)->friendsList(), this); 0036 // d->index = new QModelIndex(d->model->rowCount(), 0, 0, d->model); 0037 // qCDebug(CHOQOK)<<d->index; 0038 TwitterApiTextEdit *edit = new TwitterApiTextEdit(account, this); 0039 QCompleter *completer = new QCompleter(d->model, this); 0040 completer->setCaseSensitivity(Qt::CaseInsensitive); 0041 edit->setCompleter(completer); 0042 setEditor(edit); 0043 connect(Choqok::UI::Global::SessionManager::self(), &Choqok::UI::Global::SessionManager::newPostWidgetAdded, 0044 this, &TwitterApiComposerWidget::slotNewPostReady); 0045 } 0046 0047 TwitterApiComposerWidget::~TwitterApiComposerWidget() 0048 { 0049 delete d; 0050 } 0051 0052 void TwitterApiComposerWidget::slotNewPostReady(Choqok::UI::PostWidget *widget, Choqok::Account *theAccount) 0053 { 0054 if (theAccount == currentAccount()) { 0055 QString name = widget->currentPost()->author.userName; 0056 if (!name.isEmpty() && !d->model->stringList().contains(name)) { 0057 int row = d->model->rowCount(); 0058 d->model->insertRow(row); 0059 d->model->setData(d->model->index(row), name); 0060 } 0061 } 0062 } 0063 0064 #include "moc_twitterapicomposerwidget.cpp"