Skip to content
Snippets Groups Projects
Select Git revision
  • 9f9f2efa266e8c8cc3759d8206ade1eaab724195
  • master default protected
  • release/202005
  • release/202001
  • release/201912
  • release/201911
  • release/201910
  • release/201908
  • release/201906
  • release/201905
  • release/201904
  • release/201903
  • release/201902
  • release/201901
  • release/201812
  • release/201811
  • release/201808
  • releases/beta1
  • packaging
  • native
  • release-0.2.x
  • 1.0.0
  • 0.2.0
  • 0.1.1
  • 0.1.0
25 results

wizarddialog.cpp

Blame
    • Olivier SOLDANO's avatar
      2100f1c4
      Fix first wizard hangup · 2100f1c4
      Olivier SOLDANO authored and Andreas Traczyk's avatar Andreas Traczyk committed
      
      when closing the first wizard without creating an account
      was resulting in a hang up of the application.
      this was due to a exit(0) called in the middle of nowhere.
      This patch revises a bit the architecture to allow the information to
      reach the main and close the app correctly. (passing by return values
      because signals do not work without objects).
      
      Change-Id: I8d4b1bcdcf2646342fd7015509ef7773ca4b09d1
      Reviewed-by: default avatarAndreas Traczyk <andreas.traczyk@savoirfairelinux.com>
      2100f1c4
      History
      Fix first wizard hangup
      Olivier SOLDANO authored and Andreas Traczyk's avatar Andreas Traczyk committed
      
      when closing the first wizard without creating an account
      was resulting in a hang up of the application.
      this was due to a exit(0) called in the middle of nowhere.
      This patch revises a bit the architecture to allow the information to
      reach the main and close the app correctly. (passing by return values
      because signals do not work without objects).
      
      Change-Id: I8d4b1bcdcf2646342fd7015509ef7773ca4b09d1
      Reviewed-by: default avatarAndreas Traczyk <andreas.traczyk@savoirfairelinux.com>
    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();
    }