Skip to content
Snippets Groups Projects
Select Git revision
  • 594de2bd882df6517ae4087c00a3475b9c6345d2
  • master default
  • windows_ci_static
  • c_link
  • cpack
  • windows_ci
  • cert_pk_id
  • proxy_push_result
  • cnode_put_id
  • update-windows-build
  • proxy
  • resubscribe_on_token_change
  • actions
  • client_mode
  • llhttp
  • search_node_add
  • crypto_aes_gcm_argon2
  • ios_notifications
  • log_fmt
  • v2asio
  • fix-msvc
  • v3.4.0
  • v3.3.1
  • v3.3.1rc1
  • v3.3.1rc2
  • v3.3.0
  • v3.2.0
  • v3.1.11
  • v3.1.10
  • v3.1.9
  • v3.1.8.2
  • v3.1.8.1
  • v3.1.8
  • v3.1.7
  • v3.1.6
  • v3.1.5
  • v3.1.4
  • v3.1.3
  • v3.1.2
  • v3.1
  • v3.0.1
41 results

node.cpp

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    deviceitemwidget.cpp 3.50 KiB
    /***************************************************************************
     * Copyright (C) 2019 by Savoir-faire Linux                                *
     * Author: Andreas Traczyk <andreas.traczyk@savoirfairelinux.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 3 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/>.   *
     **************************************************************************/
    
    #include "ui_deviceitemwidget.h"
    
    #include "deviceitemwidget.h"
    
    #include "lrcinstance.h"
    
    DeviceItemWidget::DeviceItemWidget(const QString& name,
        const QString& id,
        bool isCurrent,
        QWidget* parent)
        : QWidget(parent),
        ui(new Ui::DeviceItemWidget)
    {
        ui->setupUi(this);
        ui->labelDeviceId->setText(id);
        ui->editDeviceName->setText(name);
    
        ui->btnEditDevice->setIcon(
            isCurrent ?
            QIcon(":/images/icons/round-edit-24px.svg") :
            QIcon(":/images/icons/round-remove_circle-24px.svg"));
    
        ui->btnEditDevice->setToolTip(
            isCurrent ?
            QObject::tr("Edit Device Name") :
            QObject::tr("Unlink Device From Account"));
    
        ui->editDeviceName->setReadOnly(true);
    
        ui->labelThisDevice->setVisible(isCurrent);
    
        connect(ui->editDeviceName,
                SIGNAL(returnPressed()),
                ui->btnEditDevice,
                SIGNAL(clicked()));
    
        connect(ui->btnEditDevice, &QPushButton::clicked, this,
            [this, isCurrent]() {
                if (isCurrent) {
                    toggleEditable();
                } else {
                    emit btnRemoveDeviceClicked();
                }
            });
    
    }
    
    DeviceItemWidget::~DeviceItemWidget()
    {
        disconnect(this);
        delete ui;
    }
    
    void
    DeviceItemWidget::toggleEditable()
    {
        if (!editable_) {
            ui->editDeviceName->setReadOnly(false);
            ui->editDeviceName->setFocus();
            ui->editDeviceName->setStyleSheet("background: white;");
            ui->btnEditDevice->setIcon(QIcon(":/images/icons/round-save_alt-24px.svg"));
            ui->btnEditDevice->setToolTip(QObject::tr("Save new device name"));
        } else {
            ui->editDeviceName->setReadOnly(true);
            ui->editDeviceName->setStyleSheet("background: transparent;");
            ui->btnEditDevice->setIcon(QIcon(":/images/icons/round-edit-24px.svg"));
            ui->btnEditDevice->setToolTip(QObject::tr("Edit Device Name"));
            auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
            confProps.deviceName = ui->editDeviceName->text().toStdString();
            LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
        }
        editable_ = !editable_;
    }
    
    QSize
    DeviceItemWidget::sizeHint() const
    {
        return QSize();
    }