Skip to content

Commit

Permalink
左上のアイコンをクリックしたときConfigUserダイアログを表示
Browse files Browse the repository at this point in the history
  • Loading branch information
soramimi committed Aug 14, 2023
1 parent c821fde commit c7bb0f6
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 8 deletions.
5 changes: 3 additions & 2 deletions src/MainWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,9 @@ MainWindow::MainWindow(QWidget *parent)
ui->lineEdit_remote->setText(currentRemoteName());
});

// 右上のアイコンがクリックされたとき、ConfigUserダイアログを表示
connect(ui->widget_avatar_icon, &SimpleImageWidget::clicked, this, &MainWindow::on_action_configure_user_triggered);

connect(new QShortcut(QKeySequence("Ctrl+T"), this), &QShortcut::activated, this, &MainWindow::test);

//
Expand Down Expand Up @@ -5633,8 +5636,6 @@ void MainWindow::on_action_configure_user_triggered()
execConfigUserDialog(global_user, local_user, enable_local_user, currentRepositoryName());
}



void MainWindow::showLogWindow(bool show)
{
ui->dockWidget_log->setVisible(show);
Expand Down
24 changes: 22 additions & 2 deletions src/SimpleImageWidget.cpp
Original file line number Diff line number Diff line change
@@ -1,21 +1,31 @@
#include "SimpleImageWidget.h"

#include <QDebug>
#include <QMouseEvent>
#include <QPainter>

SimpleImageWidget::SimpleImageWidget(QWidget *parent)
: QWidget{parent}
{

}

/**
* @brief 画像を設定
* @param image
*/
void SimpleImageWidget::setImage(const QImage &image)
{
image_ = image;
update();
}

/**
* @brief SimpleImageWidget::paintEvent
* @param event
*/
void SimpleImageWidget::paintEvent(QPaintEvent *event)
{
// ウィンドウに内接するように画像を描画

int dw = width();
int dh = height();
if (dw < 1 || dh < 1) return;
Expand All @@ -37,3 +47,13 @@ void SimpleImageWidget::paintEvent(QPaintEvent *event)
pr.drawImage(QRect(x, y, dw, dh), image_, QRect(0, 0, sw, sh));
}

void SimpleImageWidget::mouseReleaseEvent(QMouseEvent *event)
{
// マウス左ボタンが離されたときウィンドウ座標内ならクリックされたことにする
if (event->button() == Qt::LeftButton) {
if (rect().contains(event->pos())) {
emit clicked();
}
}
}

11 changes: 7 additions & 4 deletions src/SimpleImageWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,16 @@

class SimpleImageWidget : public QWidget {
Q_OBJECT
private:
QImage image_;
protected:
void paintEvent(QPaintEvent *event);
public:
explicit SimpleImageWidget(QWidget *parent = nullptr);
void setImage(QImage const &image);
protected:
void paintEvent(QPaintEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
private:
QImage image_;
signals:
void clicked();
};

#endif // SIMPLEIMAGEWIDGET_H

0 comments on commit c7bb0f6

Please sign in to comment.