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"