File indexing completed on 2024-05-19 04:58:06

0001 /*
0002     This file is part of Choqok, the KDE micro-blogging client
0003 
0004     SPDX-FileCopyrightText: 2008-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 #ifndef ACCOUNTS_H
0010 #define ACCOUNTS_H
0011 
0012 #include "ui_accountswidget_base.h"
0013 
0014 #include <KCModule>
0015 
0016 class QMenu;
0017 namespace Choqok
0018 {
0019 class Account;
0020 }
0021 
0022 class AccountsWidget: public KCModule, public Ui_AccountsWidgetBase
0023 {
0024     Q_OBJECT
0025 public:
0026     AccountsWidget(QWidget *parent, const QVariantList &args);
0027     ~AccountsWidget();
0028 
0029 public Q_SLOTS:
0030     virtual void save() override;
0031     virtual void load() override;
0032 
0033 protected Q_SLOTS:
0034     void addAccount();
0035     void editAccount(QString alias = QString());
0036     void removeAccount(QString alias = QString());
0037 
0038     void slotAccountAdded(Choqok::Account *account);
0039     void slotAccountRemoved(const QString alias);
0040     void accountsTablestateChanged();
0041 
0042     void moveCurrentRowUp();
0043     void moveCurrentRowDown();
0044 
0045     void emitChanged();
0046 
0047     void accountsTableCellDoubleClicked(int row, int column);
0048     void accountsTableCellClicked(int row, int column);
0049 private:
0050     void move(bool up);
0051     QList<QTableWidgetItem *> takeRow(int row);
0052     void setRow(int row, const QList<QTableWidgetItem *> &rowItems);
0053     void addAccountToTable(Choqok::Account *account);
0054     QMenu *createAddAccountMenu();
0055     QMenu *mBlogMenu;
0056 };
0057 
0058 #endif