Skip to content
Snippets Groups Projects
Select Git revision
  • 61cccc0e7dcc40fd0085e570d4168b9d4b97eb0a
  • master default protected
  • release/beta-qt-202301101210
  • stable
  • release/beta-qt-202211182015
  • release/beta-qt-202211181752
  • release/beta-qt-202211171508
  • release/beta-qt-202211081754
  • release/beta-qt-202211071518
  • release/beta-qt-202210270957
  • release/beta-qt-202210071648
  • release/beta-qt-202209291549
  • release/beta-qt-202209011129
  • release/beta-qt-202208261640
  • release/beta-qt-202208241511
  • release/beta-qt-202208231849
  • release/beta-qt-202208091525
  • release/beta-qt-202207191241
  • release/beta-qt-202207181708
  • release/beta-qt-202207131914
  • release/beta-qt-202207131513
  • android/release_358
  • android/release_357
  • android/release_356
  • android/release_355
  • android/release_354
  • 20221220.0956.79e1207
  • android/release_353
  • android/release_352
  • android/release_350
  • android/release_349
  • android/release_348
  • android/release_347
  • 20221031.1308.130cc26
  • android/release_346
  • android/release_345
  • android/release_344
  • android/release_343
  • android/release_342
  • android/release_341
  • android/release_340
41 results

winsparkle-xml-updater.sh

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();
    }